【问题标题】:RESTful call does not work from Windows 8.1 Mobile app (VS 2013), but works otherwiseRESTful 调用在 Windows 8.1 移动应用程序 (VS 2013) 中不起作用,但在其他情况下起作用
【发布时间】:2015-01-08 15:32:53
【问题描述】:

我正在使用这段代码来调用一个简单的 REST 服务。它适用于 ASP.NET 应用程序、XAML 应用程序,但不适用于 Windows Moble 应用程序。我在 Windows 8.1 操作系统上使用 VS-2013(更新 4)。知道可能出了什么问题吗?

更新:此问题仅发生在 Windows 商店应用程序中,不适用于手机应用程序(我正在使用通用应用程序来定位 Windows 和手机)。手机应用程序工作正常。必须为 Windows 模拟器做点什么。

"试图以一种被其禁止的方式访问套接字 访问权限

HttpResponseMessage responseMessage;
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
client.BaseAddress = new Uri("http://myRESTURL/url/");
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
 System.Net.Http.Headers.HttpRequestHeaders headers = client.DefaultRequestHeaders;

        try
        {
            responseMessage = await client.GetAsync("");

            if (responseMessage.IsSuccessStatusCode)
            {
                String version = await responseMessage.Content.ReadAsStringAsync();
            }
        }
        catch (Exception e)
        {
            exceptionString = e.InnerException.ToString();
        }

【问题讨论】:

    标签: c# rest mobile windows-8.1 win-universal-app


    【解决方案1】:

    Windows App Emulator 和 Phone Emulator 使用不同的操作系统设置连接到网络。我认为这是 REST 调用工作形式电话模拟器的主要原因,而不是从应用程序模拟器工作。

    这是有道理的,因为手机模拟器几乎不应该依赖我的机器设置,而应用程序可以。但我不确定 App 模拟器和电话模拟器使用了哪些特定设置。

    请分享你的发现。

    谢谢!!

    【讨论】:

    • 另外,您可以通过使用 WebAPI 项目的包装器休息服务来解决此问题。这解决了 Windoes App Simulator 使用 VPN 的限制
    【解决方案2】:

    首先重新启动您的防火墙服务 (Source)

    我在调试 Windows 商店应用程序时曾多次看到这种情况。只需重新启动“Windows 防火墙”Windows 服务即可为我修复它。我什至不需要重新启动应用程序。

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2015-02-12
      相关资源
      最近更新 更多