Windows应用8.1本地专用网络上的httpclient请求失败

时间:2014-05-28 16:53:40

标签: c# windows-store-apps httpwebrequest windows-8.1

接收json的http请求在私有网络中失败,甚至在使用xamp的同一系统服务器中失败,它可以通过互联网上的公共网络正常工作。

我已经在appxmanifest中提供了互联网客户端和服务器,私有网络功能

代码:

public static async Task<string> GetStringfromUrl(string url)
    {

        var httpClientHandler = new HttpClientHandler();
        httpClientHandler.Credentials = new System.Net.NetworkCredential(GlobalVariables.Web_AccountName,GlobalVariables.Web_AccountPassword);

        HttpClient httpClient = new HttpClient(httpClientHandler);



        try
        {
            string responseBodyAsText;

            HttpResponseMessage response = await httpClient.GetAsync(url);
            response.EnsureSuccessStatusCode();
            responseBodyAsText = await response.Content.ReadAsStringAsync();

            return responseBodyAsText;

        }

        catch(Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.Message +"/n" + ex.InnerException);
            return null;
        }
    }

在私有网络中显示授权异常,在同一系统localhost中它不通过代码行。虽然在公共互联网上运行良好 请帮忙

1 个答案:

答案 0 :(得分:1)

有关尝试哪种解决方案的信息

&#34;在侧面加载的Windows应用商店应用中使用网络环回&#34; http://msdn.microsoft.com/en-us/library/windows/apps/dn640582.aspx @ section&#34;配置防火墙&#34;

  

CheckNetIsolation实用程序

     

Windows防火墙还会阻止所有Windows的环回连接   默认情况下存储应用。设备管理员可以为a启用环回   使用CheckNetIsolation.exe工具的Windows应用商店应用。这个工具是   在任何Windows 8.1安装中都可以在命令行中使用。

尝试解决方法

使用@命令提示符

checknetisolation loopbackexempt -a -n=<package-family-name>

其中

-a

代表添加

-n

代表AppContainer Name或Package Family Name(在这种情况下我们关心)和

<package-family-name>

可以在@ packaging.appmanifest @ packaging

找到
  

CheckNetIsolation.exe用法

     

CheckNetIsolation LoopbackExempt [操作] [-n =] [-p =]         操作列表:-a -d -c -s         参数列表:-n = -p = - ?

在我的案例中遇到问题的背景

通过Windows(Store App)单元测试测试Windows(Store App)可移植库时,该测试访问由并行运行的控制台应用程序设置的localhost自托管WebAPI。

备注

我也尝试了功能,你需要,无济于事,在修复问题之后,我实际上恢复了原来的配置,没有使用任何其他2个(互联网(客户端和服务器),专用网络(客户端和服务器))看看它们是否重要且上面的解决方案仍然有效,可能是因为这些与您的应用程序充当服务器并处理请求有关。

让我知道这是否可以解决问题,如果是,请不要忘记接受答案!