【问题标题】:WCF Service times out from windows 8 unit test projectWindows 8 单元测试项目中的 WCF 服务超时
【发布时间】:2015-05-01 19:18:35
【问题描述】:

应用程序运行时,WCF 服务按预期工作。
当从单元测试项目中调用完全相同的代码时,会发生以下错误。 Windows 8 测试项目访问 WCF 服务是否有特殊需要?

结果消息:测试方法 数据服务测试.MyTest 抛出异常:

System.AggregateException:发生一个或多个错误。 ---> System.ServiceModel.EndpointNotFoundException:无法连接到 net.tcp://localhost:56478/MyService/DataAccessService。连接 尝试持续了 00:00:42.0131535 的时间跨度。 TCP错误代码 10060:连接尝试失败,因为连接方没有 一段时间后正确响应,或建立连接 失败,因为连接的主机没有响应 127.0.0.1:56478。 ---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方没有正确 一段时间后响应,或建立连接失败 因为连接的主机没有响应 127.0.0.1:56478

集成测试代码:

DataAccess service = new DataAccess(
    new Uri(@"net.tcp://127.0.0.1:56478/MyServices/DataAccessService"));
var bob = service.GetData();

【问题讨论】:

    标签: wcf unit-testing windows-store-apps windows-8.1


    【解决方案1】:

    由于您没有共享任何相关来源,因此很难完全诊断您的问题。不过……

    您确定您的 WCF 服务实例在您的测试开始运行之前已启动、运行且可访问吗?

    错误消息非常描述正在发生的事情:

    无法连接到 net.tcp://localhost:8111/MyService/DataAccessService

    连接尝试持续了 00:00:42.0131535 的时间跨度。

    连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 127.0.0.1:8111

    【讨论】:

    • 对您的测试代码更感兴趣。你用什么来执行你的测试?许尼特?测试?其他?您的测试代码能否访问 WCF 服务上的 HTTP 端点(相对于您当前公开的 TCP 端口)?
    • 您能否发布一些测试代码和测试应用配置(如果您正在配置 WCF 客户端)?您的服务是否使用 HTTP 或 TCP 公开其端点?
    • 您可以根据我在构建 WCF 时用来演示 WCF 的 Magic8Ball 示例选择配置您的客户端 :) github.com/bitcrazed/Magic8Ball/blob/master/src/Magic8BallApp/…。听起来您已经编写了测试代码以通过代码与目标服务绑定 - 这很好,但是尝试在没有代码的情况下诊断您的问题可能会尝试闭着眼睛驾驶飞机;)
    • 您能否让 Magic8Ball 在您的机器上运行?我注意到在您的应用程序中,您主要使用 TCP - 您是否尝试过使用 HTTP 代替?
    【解决方案2】:

    因为这是一个商店应用程序,它在沙盒 (AppContainer) 中运行,因此某些东西(如 WCF)不能通过“单元测试”开箱即用。为了让它工作,我必须在我的开发机器上为单元测试项目添加一个 Loopback Exemption。

    第 1 步 在调用 WCF 服务的单元测试项目中打开 Package.appxmanifest 文件,然后导航到 Packaging Tab。从那里,记下软件包系列名称。

    第 2 步以管理员身份打开 Visual Studio 命令提示符/开发者提示符,并将其粘贴到 CheckNetIsolation LoopbackExempt -a -n=UnitTestProjectPackageFamilyName,将最后一位替换为实际的包系列名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 2012-10-21
      相关资源
      最近更新 更多