wcf - WCF 服务的 Win32Exception @ ServiceHost.Open()

标签 wcf performance servicehost win32exception

我正在为我正在编写的一组广泛的 WCF 服务基础架构编写 BDD 规范。我注意到我编写的每个规范都涉及对 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/calculator/作为 http namespace 排除,因此这不是问题的一部分。

此错误在 Windows 7 Ultimate 系统上最为严重。在 Vista Ultimate 系统上,它似乎不会对性能造成太大影响,但是 ServiceHost.Open() 是执行过程中花费的大部分时间。我不明白为什么当 URL 是本地主机时它是一个问题...我希望环回接口(interface)是所有接口(interface)中最快的。

最佳答案

问题不在于本地主机与 dns 名称...它与调用 TranslateName() 的 WCF 有关api 将服务的 UPN 身份从 SAM 兼容名称(即域\用户)转换为规范名称,并提示它无法连接到作为输入显示的 SAM 兼容名称中指定的域。

不确定是什么原因造成的,但可能是您以某种方式在 UPN 身份中指定了错误的域,或者您的机器的域注册有问题,或者防火墙挡住了路。

关于wcf - WCF 服务的 Win32Exception @ ServiceHost.Open(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542242/

相关文章:

wcf - 在 WCF 中 - 在 "Faulted"事件中 - 如何获取异常详细信息?

linux - 单声道WCF客户端异常: The requested feature is not implemented

c# - WCF 一个服务实例多个 channel

带 SSL/Https 的 C# RESTService

session 之间的 WCF 数据持久化

python - 使用 python 中的虚拟文件改进 CSV 推送到 MySQL

C++,缓存局部性改进的基准测试方法?

java - 线程化 apache cxf 客户端和高频请求的性能

wcf - wcf 服务中 ServiceHost 指令中的服务类型问题

asp.net - 使用ASP.NET将文件从服务器发送到客户端