从xamarin Vs2015 android模拟器

时间:2016-11-03 10:23:32

标签: android xamarin

我的连接被拒绝'或者“糟糕的请求”#39;当尝试从android模拟器连接到localhost上的我的Web服务时。我已将端口号添加到防火墙以允许连接,我已尝试给出here的建议来修改 applicationhost.config

Web服务和模拟器都在同一台(Windows 10)PC上运行。在服务器的web.config中,我在&system; web.webserver'下面有以下内容:

 <httpProtocol>
 <customHeaders>
  <clear />
  <add name="Access-Control-Allow-Origin" value="*" />
   <add name="Access-Control-Allow-Headers" value="Content-Type" />
   <add name="Access-Control-Allow-Methods" value="GET, PUT, POST" />
 </customHeaders>
 </httpProtocol>

AFAIK仿真器可以找到 Web服务器(我没有找到&#39;找不到&#39;错误),但是服务器拒绝连接。

   using (WebClient client = new WebClient())
   {
     string json = ......;
     client.Headers[HttpRequestHeader.ContentType] = "application/json";
    //      I have also tried  "application/x-www-form-urlencoded";
    string result = client.UploadString(UrlBase.urlBase + "SaveLocation", json);

如果&#39; UrlBase&#39;是 http://192.168.1.73:60080/Service1.svc/ ,我得到了错误的请求&#39;,我知道这可能是由格式错误的json造成的。

如果&#39; UrlBase&#39;是一个远程服务器,连接工作(所以我知道json格式是正确的)。在远程服务器和本地服务器上运行相同的更新dll。

如果&#39; UrlBase&#39;是 http://localhost:60080/Service1.svc/ ,我得到例外&#39;连接被拒绝&#39;

1 个答案:

答案 0 :(得分:2)

我没有使用任何防火墙规则,因为我的模拟器与服务主机位于同一台计算机上。正如杰森所说,你应该使用你的主机IP地址。 要避免许多问题,请使用本地IIS主机而不是IIS Express。您的“错误请求”不是无效的Json,而是无效的主机名,因为IIS Express不允许任何连接,而是来自本地计算机。您可以尝试在上面引用的链接中欺骗它,但为什么要这么麻烦?

这是IIS Express托管应用程序的结果。

enter image description here

这是本地IIS托管应用程序的结果

enter image description here

在这里获得项目后的结果是:

enter image description here