1

こんにちは、私の設定である http + tcp サービスを持つ wcf に取り組んでいます:

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix="http://localhost/API/"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
  </webHttpEndpoint>
</standardEndpoints>

<services>
  <service name="API.APIsrv" behaviorConfiguration="ServiceBehaviour">

    <endpoint address="http://localhost/tAPI/Basic" binding="basicHttpBinding" name="Basic" bindingConfiguration="Basic" contract="API.IAPIsrv" >
    </endpoint>

    <endpoint address="http://localhost/API" binding="webHttpBinding" name="APIsrv" contract="API.IAPIsrv" behaviorConfiguration="web">
    </endpoint>

    <endpoint address="net.tcp://localhost/API"  binding="netTcpBinding" name="APIsrv.netTcpBinding" contract="API.IAPIsrv">
    </endpoint>

    <endpoint address="http://localhost/API/mex"
      binding="mexHttpBinding"
      contract="IMetadataExchange" />

    <endpoint address="net.tcp://localhost/API/mex"
              binding="mexTcpBinding"
              contract="IMetadataExchange" />

  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost/API/APIsrv.svc"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>

  <endpointBehaviors>
    <behavior name="web">
      <webHttp helpEnabled="true"/>
    </behavior>
  </endpointBehaviors>
</behaviors>

<bindings>

  <basicHttpBinding>
    <binding name="Basic" />
  </basicHttpBinding>
  <netTcpBinding>
    <binding name="APIsrv.netTcpBinding" transferMode="Streamed" maxReceivedMessageSize="20480000">
      <security mode="None"></security>
    </binding>
  </netTcpBinding>

</bindings>

私のグローバルファイルでは、ルートアドレスを処理します:

protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.Add(new ServiceRoute("", new ServiceHostFactory(), typeof(APIsrv)));
    }

私のローカル クライアント テストでは、次のエラーが表示されます。コンパイル中に例外が発生したため、サービス '/API/' をアクティブにできません。例外メッセージ: The ChannelDispatcher at 'http://localhost/API/Basic' with contract(s) '"IAPIsrv"' は、その IChannelListener を開くことができません。

この問題を解決するにはどうすればよいですか

4

0 に答える 0