WinRT单元测试库项目超时SocketException

时间:2014-07-08 04:23:05

标签: unit-testing windows-runtime fiddler windows-store

我希望使用Fiddler来捕获WinRT Unit Test Library客户端应用程序和OData web api Asp.net Mvc 4服务器之间的HTTP流量。

使用Visual Studio 2013我为WinRT Windows应用商店应用(Windows 8.1)创建了单元测试库项目

我已将服务api url设置为http://localhost.fiddler :, Fiddler正在运行并捕获非浏览器流量。

当我运行一个简单的测试时,它失败了:System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机已经建立连接失败未能回复127.0.0.1:8888

我知道127.0.0.1:8888是默认的Fiddler代理地址。

我认为问题是由Windows 8阻止应用程序向本地计算机发送网络流量并运行 Fiddler AppContainer Loopback Exemption Utility 以使单元测试库将网络流量发送到127.0引起的。 0.1:8888

我在单元测试库项目Package.appmanifest文件中找不到包显示名称或包名称(AC名称)的应用程序。

为什么这个项目没有出现在AppContainer Loopback Exemption Utility中?

1 个答案:

答案 0 :(得分:2)

单元测试库WinRT应用程序不会出现在Fiddler AppContainer Loopback Exemption Utility 中,除非应用程序正在运行

在单元测试库[TestClass]的[TestMethod]中设置断点,并在Debug模式下运行[TestMethod]。当测试中断时,运行Fiddler AppContainer Loopback Exemption Utility。单元测试库应用程序现在应该出现在列出的Win8应用程序中。注意:“显示名称”将是Package.appmanifest中指定的名称,包名称(AC名称)将是Package.appmanifest中指定的Guid。

为应用启用环回免除功能。这只需要做一次。尽管应用程序是临时的,但仍会记住环回豁免。

注意:如果在单元测试库WinRT应用程序未运行时运行Fiddler AppContainer Loopback Exemption Utility,则会出现一个警告对话框:对于SID,存在环回豁免:sX-XX-X-XXXXXXXX。 ... 没有找到具有该SID的AppContainer。