我的应用程序UWP正在通过IIS访问某些数据,
public static async Task<List<Uri>> GetMedia()
{
List<Uri> target = new List<Uri>();
HtmlDocument document = new HtmlDocument();
var httpClient = new HttpClient();
var urlVideos = "http://localhost/Videos";
var response = await httpClient.GetAsync(urlVideos);
var result = await response.Content.ReadAsStringAsync();
string htmlString = result;
document.LoadHtml(htmlString);
var collection = document.DocumentNode.DescendantsAndSelf() ;
foreach (HtmlNode link in collection)
{
if (link.Attributes.Contains("href") && !string.IsNullOrEmpty(link.Attributes["href"].Value.Trim().Trim('/')))
{
target.Add(new Uri("http://localhost" + link.Attributes["href"].Value));
}
}
return target;
}
然后我正在调用这样的方法,
私人IList _videos _videos =等待Proxy.GetMedia();
它运行良好,除非我在安装应用程序后,我才意识到_video保持为空,我可以浏览http://localhost/Videos所以我认为IIS配置得很好,
答案 0 :(得分:2)
如果要从侧载应用程序访问localhost,则必须为此特定应用程序启用网络环回。每个应用都禁止默认访问http://localhost。 您可以在命令行上运行此命令:
checknetisolation LoopbackExempt -a -n=YourAppContainerPackageFamilyName
将YourAppContainerPackageFamilyName替换为您应用的AppContainer名称。您可以在应用的* .appxmanifest中找到它。您必须在您加载应用程序的计算机上运行它。在开发机器上,它默认启用。 另见此链接: https://msdn.microsoft.com/en-us/library/windows/apps/Hh780593.aspx