1

我正在 Visual Studio 2012 中开发 WCF 服务。以下是 web.config 文件:

  <system.serviceModel>
    <client>
      <endpoint address="net.tcp://localhost/BlueYonder/Booking" binding="netTcpBinding" contract="BlueYonder.BookingService.Contracts.IBookingService" name="BookingTcp">
        <identity>
          <certificateReference storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" findValue="Server"/>
        </identity>
      </endpoint>
    </client>
    <bindings>
      <netTcpBinding>
        <binding>
          <security mode="Message">
            <message clientCredentialType="Certificate"/>
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <clientCredentials>
            <serviceCertificate>
              <authentication revocationMode="NoCheck" />
            </serviceCertificate>
            <clientCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="Client"/>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

我还在 IIS 中启用了 net.tcp 绑定。此外,我还检查了所需的服务(侦听器)是否正在运行。

但是,我收到以下错误消息:

EndPointNotFoundException

在 net.tcp://localhost/BlueYonder/Booking 上没有可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。

4

1 回答 1

1

您可以逐步尝试几件事

  1. 确保所有必需的服务都在运行。转到本地服务并检查以下服务。 看图片1
  2. 正如您所说,您已经在 IIS 中启用了 net.tcp 绑定,所以它很好。3.确保您的HTTP端口和NET.TCP端口不同,最好是 80 上的 http 和 808 上的 NET.TCP。
  3. 重新启动 IIS 并更新客户端应用程序中的服务引用。
  4. 检查是否为 NET.TCP 添加了任何新服务引用而不是使用新服务引用,删除您已经创建的旧服务引用。

确保执行第 4 点和第 5 点(如果您已经完成了第 1 点到第 3 点) 如果您仍然面临一些问题,请检查您的 IIS 是否注册了 ASP.NET 4.5 或您正在使用的任何其他版本。为 IIS 注册 Asp.net 的命令是aspnet_regiis -i. 以管理员身份运行 Visual Studio 开发人员命令提示符,然后启动C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

于 2015-03-21T21:45:02.443 回答