0

我们正在运行更新的 2008 服务器,在开发机器上运行 TFS 2012 和 VS 2012。该解决方案使用 MSBuild 在服务器上部署和运行测试。所有测试都通过了开发框,但只有不调用本地部署的 WCF 服务器(托管在 IIS 中)的测试失败。所有服务调用的例外情况如下:

>     Test method TestProject.TestClass.TestMethod threw exception: 
>     System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel,
> cannot be used for communication because it is in the Faulted state.
>      
>     Server stack trace: 
>        at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan
> timeout)
>        at System.ServiceModel.Channels.ServiceChannel.System.IDisposable.Dispose()
>     Exception rethrown at [0
enter code here

NETWORK SERVICE 具有相应的权限。电源已打开。有什么想法吗?

4

1 回答 1

1

解决了。首先介绍一下设置的背景:

有问题的服务配置了用户名身份验证,利用 SQL 成员资格提供程序和服务证书。授权是使用 ASP.NET 角色提供程序完成的。正在使用的绑定是一个 NetTcpBinding,消息安全已打开并配置为用户名。

结果问题如下:我本地盒子上的MSBuild和MSTest在我的帐户下运行。在这里,我在本地生成的用于授权的证书被添加到 Current User \ Trusted People 中,这很好;但是在构建框上,因为 MSBuild 和 MSTest 在 NETWORK SERVICE 下运行,WCF 拒绝了握手。此问题的解决方案是将测试证书添加到本地计算机\受信任的人存储。

于 2013-02-22T23:49:13.120 回答