0

我正在尝试使用 WCF 测试客户端来测试我的 WCF 服务,这是我的 app.config。这很好用,但是当我将 baseAddress 更改为“net.pipe://localhost/VSWCFPipe”时,它不再有效。将 baseAddress 更改为命名管道的正确方法是什么?我只想使用 net.pipe,因为这仅适用于本地计算机上的 IPC。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="WCFServiceBehavior"
        name="WCFEngineService.WCFService">
        <clear />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"
          listenUriMode="Explicit">
          <identity>
            <dns value="localhost" />
            <certificateReference storeName="My" storeLocation="LocalMachine"
              x509FindType="FindBySubjectDistinguishedName" />
          </identity>
        </endpoint>
        <endpoint address="net.pipe://localhost/VSWCFPipe" binding="netNamedPipeBinding"
          bindingConfiguration="" contract="WCFEngineService.IWCF" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8888/WCFEngineService/Service" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WCFServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="False"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
4

1 回答 1

0

根据我的理解,您错过了在启用的协议列表中添加net.pipe协议。请按照以下步骤确认设置是否正确。

  1. 转到 IIS(在运行窗口中键入inetmgr )
  2. 从左窗格中选择并右键单击您的服务。
  3. 从右键单击上下文菜单中选择管理应用程序---->高级设置菜单。
  4. 在高级设置窗口中选择启用协议属性。
  5. 默认情况下会添加 http 协议。通过逗号分隔添加net.pipe 。例如:http,net.pipe
于 2013-10-08T05:40:25.253 回答