4

httpスキーム バインディングを からbasicHttpBindingに変更したいwsHttpBinding。私はそれをオーバーライドできることを知っていますapp.config。ただし、影響を受けるすべての WCF ホスト アプリケーションの設定を変更する必要があります。

また、machine.config にプロトコル マッピング セクションが見つかりませんでした。

デフォルトのプロトコル マッピングは次のとおりです。

<protolMapping>
    <add scheme ="http" binding="basicHttpBinding" bindingConfiguration="" />
    <add scheme ="tcp"  binding="netTcpBinding" bindingConfiguration="" />
..
</protocolMapping>

変更後は次のようになります。

<protolMapping>
    <add scheme ="http" binding="wsHttpBinding" bindingConfiguration="" />
    <add scheme ="tcp"  binding="netTcpBinding" bindingConfiguration="" />
..
</protocolMapping>
4

2 に答える 2

1

デフォルトは .config ファイルではなくコードで実装されていると思います。ProtocolMappingSection Class、メソッドInitializeDefaultをReflectorまたは同等のツールで見ると、次のようになります。

protected override void InitializeDefault()
{
    this.ProtocolMappingCollection.Add(new ProtocolMappingElement("http", "basicHttpBinding", ""));
    this.ProtocolMappingCollection.Add(new ProtocolMappingElement("net.tcp", "netTcpBinding", ""));
    this.ProtocolMappingCollection.Add(new ProtocolMappingElement("net.pipe", "netNamedPipeBinding", ""));
    this.ProtocolMappingCollection.Add(new ProtocolMappingElement("net.msmq", "netMsmqBinding", ""));
}
于 2012-12-30T07:25:12.307 に答える
1

デフォルトは machine.config で設定され、web.config / app.config で上書きされる可能性があります。これは、サーバーが WCF プレインストールで設定されていないことが原因である可能性があります。通常、これは IIS でインストールおよび構成されますが、IIS がインストールされていないか、WCF をホストするために使用されていない場合、WCF 機能はインストールされません。

件名のMSDNリンク

于 2015-03-28T10:29:41.367 に答える