クライアントアプリケーションで接続しているWCFサービスがあります。設定ファイルで以下を使用しています。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MyNameSpace.TestService" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:9100/TestService" binding="basicHttpBinding"
bindingConfiguration="MyNameSpace.TestService" contract="TestService.IService" name="MyNameSpace.TestService" />
</client>
</system.serviceModel>
コードでは、このサービスで次のようにAPIを呼び出しています。
TestServiceClient client = new TestServiceClient()
client.BlahBlah()
ここで、エンドポイントをポーグラマティックに定義したいと思います。どうすればそれができますか?エンドポイントを動的に追加するには、TestServiceClientインスタンスにコードを配置する必要があると考えていたため、構成ファイルからセクションをコメントアウトしましたが、TestServiceClientがインスタンス化された時点で次の例外がスローされます。
ServiceModelクライアント構成セクションでコントラクト'TestService.IService'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。
どうすればこれを達成できますか?また、エンドポイントをプログラムで追加するためのコード例に関するポイントもありがたいです。