title: ServiceStack JsonServiceClient based test fails, but service works in browser
body: <p>After I got my single-page web app working <em>(web pages served with ServiceStack's RazorFormat() MVC, not .ASP MVC)</em>, I ran a <em>(previously passing)</em> test for the service.  The test failed.  Tested the web app again <em>(debug run, navigate to <code>//localhost:1337/ResourceList</code> in the browser)</em>: still working.  Is something wrong with my test?</p>
  
  <p><strong>Here's the error:</strong></p>
  
  <pre class="lang-cs prettyprint-override"><code>Test Name:  TestResourceList
  Test FullName:  [0-1015]ServiceWrapper.Test.TestSWrapperServices.TestResourceList
  Test Source:    c:\Users\uname\Documents\Visual Studio 2012\Projects\ServiceWrapper\UnitTestProject1\ServiceTests.cs : line 96
  Test Outcome:   Failed
  Test Duration:  0:00:02.188
  
  Result Message: 
  System.Net.WebException : Unable to connect to the remote server
    ----&gt; System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:1337
  Result StackTrace:  
  at System.Net.HttpWebRequest.GetResponse()
  at ServiceStack.ServiceClient.Web.ServiceClientBase.Send[TResponse](String httpMethod, String relativeOrAbsoluteUrl, Object request)
  at ServiceStack.ServiceClient.Web.ServiceClientBase.Get[TResponse](IReturn`1 request)
  at ServiceWrapper.Test.TestSWrapperServices.TestResourceList() in c:\Users\uname\Documents\Visual Studio 2012\Projects\ServiceWrapper\UnitTestProject1\ServiceTests.cs:line 98
  --SocketException
  at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
  at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket&amp; socket, IPAddress&amp; address, ConnectSocketState state, IAsyncResult asyncResult, Exception&amp; exception)
  </code></pre>
  
  <p><strong>Here's the test:</strong></p>
  
  <pre class="lang-cs prettyprint-override"><code>namespace ServiceWrapper.Test
  {
      [TestFixture]
      public class TestSWrapperServices
      {
          AppHost appHost;
          private const string ListeningOn = "http://*:1337/";
          public const string Host = "http://localhost:1337";
          private const string BaseUri = Host + "/";
  
          [TestFixtureSetUp]
          public void OnTestFixtureSetUp()
          {
              var appSettings = new AppSettings();
              var username = Environment.GetEnvironmentVariable("USERNAME");
              var userdomain = Environment.GetEnvironmentVariable("USERDOMAIN");
  
              AppHost.AppConfig = new AppConfig(new AppSettings());
  
              appHost = new AppHost();
  
              // initialize Service Server
              ServiceServer.SetUser(AppHost.AppConfig.UserName, AppHost.AppConfig.Password);
              ServiceServer.SetLog(String.Empty);
  
              try
              {
                  appHost.Init();
                  appHost.Start(ListeningOn);
              }
              catch (HttpListenerException ex)
              {
                  if (ex.ErrorCode == 5)
                  {
                      System.Diagnostics.Debug.WriteLine("You need to run the following command (as admin):");
                      System.Diagnostics.Debug.WriteLine("  netsh http add urlacl url={0} user={1}\\{2} listen=yes",
                          ListeningOn, userdomain, username);
                  }
                  else
                  {
                      System.Diagnostics.Debug.WriteLine("ERROR: {0}: {1}", ex.GetType().Name, ex.Message);
                  }
              }
              catch (Exception ex)
              {
                  System.Diagnostics.Debug.WriteLine("ERROR: {0}: {1}", ex.GetType().Name, ex.Message);
              }
          }
  
          [TestFixtureTearDown]
          public void OnTestFixtureTearDown()
          {
              appHost.Dispose();
          }
  
          [Test]
          public void TestResourceList()
          {
              JsonServiceClient client = new JsonServiceClient(BaseUri);
              ResourceList response = client.Get(new ResourceList());
              Assert.Contains("Some Value", response.property);
          }
          [Test]
      }
  }
  </code></pre>