1

私は、POST over HTTPS (IIS 上の ASP.NET 4.0) を介して text/xml タイプのドキュメントを受け入れる WCF REST タイプのサービスに取り組んでいます。誰かが web.config を手伝ってくれますか? ドキュメントを解析する CustomTextMessageEncoder のサンプル コードを使用してテストしています。エラーが表示されます:「メッセージ レベル セキュリティでは手動アドレス指定はサポートされていません。トランスポート セキュリティを使用するか、手動アドレス指定を行わないようにバインド ('CustomBinding'、' http://tempuri.org/ ') を構成してください。」

残念ながら、ManualAddressing をオフにすると、別のエラーが発生します。カスタム バインドであるため、TransportSecurity を有効にする方法がわかりません。

私がやっていることの web.config の主な部分は次のとおりです。

  <system.serviceModel>
    <services>
      <service name="MyApp.MyApp" behaviorConfiguration="MyAppBehavior" >
        <endpoint address="https://myURL/MyApp/" binding="customBinding" bindingConfiguration="newBinding" behaviorConfiguration="webEndpoint"  contract="MyApp.IMyApp" />
        <host>
          <baseAddresses>
            <add baseAddress="https://myURL/MyApp/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="false" aspNetCompatibilityEnabled="true">
      <baseAddressPrefixFilters>
        <add prefix="https://myURL/MyApp/" />
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyAppBehavior" >
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="True" httpsGetUrl="https://myURL/MyApp/MyApp.svc/"  />
          <serviceDebug includeExceptionDetailInFaults="True"  />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webEndpoint" >
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <extensions>
      <bindingElementExtensions>
        <add name="customTextMessageEncoding" type="Microsoft.Samples.CustomTextMessageEncoder.CustomTextMessageEncodingElement, CustomTextMessageEncoder" />
      </bindingElementExtensions>
    </extensions>
    <bindings>
      <webHttpBinding>
        <binding name="webHttpBinding">
          <security mode="Transport" />
        </binding>
      </webHttpBinding>
      <customBinding>
        <binding name="newBinding" >
          <security authenticationMode="AnonymousForCertificate" />
          <customTextMessageEncoding messageVersion="Soap12WSAddressing10">
          </customTextMessageEncoding>
          <httpsTransport manualAddressing="true" requireClientCertificate="true" />
        </binding>
      </customBinding>
    </bindings>
  </system.serviceModel>
4

0 に答える 0