0

初心者の場合、Web サービスを理解するのは本当に難しいです。概念が難しいからではなく (そうではありません)、テクノロジーが多くの紆余曲折を経ており、Google で助けを求めても役に立たないからです。返されるのは、わずかに異なる方法で実装された場合の答えです。

[たとえば、私たちのソリューションには.svcファイルまたは.asmxファイルがありませんでしたが、それらは回答で定期的に表示され、他の人が持っているようにweb.configにはbehaviorまたはbinding要素がありません]

チュートリアルを使用して、IIS6 で実行される "WCF Web サービス" と呼ばれるものをセットアップしました。それはうまくいっています。

しかし、暗号化/https を使用するように変換したいと考えています。

そこで、IIS で [セキュリティで保護されたチャネルが必要] ボックスをオンにしました。
ここに画像の説明を入力

そこに他に何を設定すればよいかわかりませんが...とにかく、先に進みます。次に、web.config ファイルを変更する必要があると思いますが、何をどのように変更するのでしょうか? system.serviceModelweb.configの内容は次のとおりです。

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>
    <standardEndpoints>
        <webHttpEndpoint>
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"></standardEndpoint>
        </webHttpEndpoint>
    </standardEndpoints>
</system.serviceModel>

では、次に何をする必要があるでしょうか。

4

1 に答える 1

0

残念ながら、すべてのコードなしで規定するのは難しいですが、概要は次のとおりです。

これらのバインドと動作を web.config に追加する必要があります。

基本的なHttpBindingから始めて、現在のように機能させるだけですが、今回はデフォルトを使用する代わりにバインディングの詳細を指定します. https を「オフ」にするには、bindingConfiguration のセキュリティ モードを None に変更します。

完了すると、WCF サービスは次のようになります。

<services>
    <service behaviorConfiguration="webServiceClientBehavior" name="My.Service.ServiceName">
            <endpoint address="http://localhost:5803/LSClient"  binding="basicHttpBinding" bindingConfiguration="secureBinding" contract="My.Service.IServiceName"/>
    </service>
</services>

bindingConfiguration の場合:

<bindings>
      <basicHttpBinding>
        <binding name="secureBinding">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
</bindings>

動作構成の場合:

<serviceBehaviors>
       <behavior name="webServiceClientBehavior">
          <!--For MetaData-->
          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:5802/LSClientMD"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
</serviceBehaviors>

これらは実装に合わせて少し調整する必要がありますが、それが基本的な概要です。

于 2012-08-03T16:17:56.557 に答える