WCFプロジェクトのapp.configファイルを削除しようとしています。生成しているDLLに設定をハードコーディングする必要があります。
でプロキシクラスを作成しましたがsvcUtil
、クライアントを使用すると正常に動作しますApp.config
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="ManagementEndpoint">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://example.com/MyApp/DomainManagement"
binding="netTcpBinding" bindingConfiguration="ManagementEndpoint"
contract="MyApp.DomainManagementProxy.IDomainManagement"
name="DomainManagementEndpoint" />
</client>
</system.serviceModel>
ただし、自分を削除App.config
してデフォルトのコンストラクターを次のコンストラクターに置き換えると
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class DomainManagementClient : System.ServiceModel.ClientBase<MyApp.DomainManagementProxy.IDomainManagement>, MyApp.DomainManagementProxy.IDomainManagement
{
public DomainManagementClient()
: base(new NetTcpBinding(SecurityMode.None, false),
new EndpointAddress("net.tcp://example.com/MyApp/DatabaseManagement"))
{
}
//(Snip)
クライアントで最初のメソッドを呼び出すとすぐに、次のエラーが発生します
EndpointDispatcherでのContractFilterの不一致が原因で、アクション' http://example.com/MyApp/DomainManagement/IDomainManagement/GetServerSetup 'のメッセージを受信者で処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。
バインディングを正しく機能させるには、コンストラクターに何を変更/入力する必要がありますか?