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バインディングを有効にしているので、良いです。HTTP3.ポートとポートが異なることを確認してくださいNET.TCP。できれば 80 では http を、808 では NET.TCP を使用してください。
  3. IIS を再起動し、クライアント アプリケーションでサービス参照を更新します。
  4. 新しいものを使用するよりも、NET.TCP に追加された新しいサービス参照があるかどうかを確認し、既に作成した古いものを削除します。

ポイント 4 と 5 を必ず実行してください (ポイント 1 から 3 を既に実行している 場合)。 それでも問題が発生する場合は、IIS が ASP.NET 4.5 または使用している他のバージョンに登録されていることを確認してください。Asp.net for IIS を登録するコマンドはaspnet_regiis -i. 管理者として Visual Studio developerper コマンド プロンプトを実行し、起動します。C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

于 2015-03-21T21:45:02.443 に答える