我正在写BDD规格为一组广泛WCF服务基础设施的我写。 我注意到,每当我写该规范涉及到ServiceHost.Open(电话)时,该行需要一个好的2 - 6秒执行(时间不断增加,因为我添加更多的规格)。 我注意到,当这个方法被调用,一个Win32Exception抛出:
Win32Exception occurred
Message: The specified domain either does not exist or could not be contacted.
Stack Trace: at System.ServiceModel.UpnEndpointIdentity.GetUpnFromDownlevelName(String downlevelName)
NativeErrorCode: 1355
ErrorCode: -2147467259
的ServiceModel配置如下:
<system.serviceModel>
<services>
<service name="TestServices.Calculator" behaviorConfiguration="default">
<endpoint
name="calculator"
address=""
binding="wsHttpBinding"
contract="TestServiceContracts.ICalculator" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/calculator" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="default" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
注:我已经配置的Http.sys并添加HTTP:// +:80 /计算器/作为HTTP命名空间排斥,所以这不是问题的一部分。
此错误是Windows 7旗舰版系统上最严重的。 在Vista旗舰版系统,它似乎并没有造成太大的性能损失,然而ServiceHost.Open()是绝大部分的执行所花费的时间。 我不明白为什么这是一个问题,在所有当URL的是本地主机...我希望loopback接口是最快的所有的。