2

自分で解決策を見つけようとしましたが、失敗しました。IIS の仮想ディレクトリでホストされている WCF Web サービスがあります。

http://host/soap/myservice.svc

SOAP サービスは REST サービスの下に配置されます

http://host - REST services address

WCF サービスからメソッドを実行しようとすると、次のエラーが発生します (サーバー側で):

着信メッセージを受信するためのチャネルの検索に失敗しました。エンドポイントまたは SOAP アクションが見つかりませんでした。

同じ IIS で WCF サービスをホストしているが、スタンドアロン アプリケーションとしてホストしている場合

http://host:81

すべて正常に動作します。しかし、私はそれらがそれらの REST サービスの下にある必要があります。

以下はweb.config、svcutil によって生成されたクライアントです。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
            allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://host/soapservices/MyService.svc"
          binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService"
          contract="IMyService" name="WSHttpBinding_IMyService">
        <identity>
          <servicePrincipalName value="host/host" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

web.configソープサービスはこちら

  </appSettings>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MyServiceName">
        <host>
          <baseAddresses>
            <add baseAddress="http://host/SOAPServices/MyService/" />
          </baseAddresses>
        </host>
        <endpoint address="" binding="wsHttpBinding" contract="IMyService">
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="True" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
</configuration>
4

0 に答える 0