接收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中它不通过代码行。虽然在公共互联网上运行良好 请帮忙
答案 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个(互联网(客户端和服务器),专用网络(客户端和服务器))看看它们是否重要且上面的解决方案仍然有效,可能是因为这些与您的应用程序充当服务器并处理请求有关。
让我知道这是否可以解决问题,如果是,请不要忘记接受答案!