0

spring.net サンプルに示されている最初の例から、次の構成を使用しています。

<wcf:channelFactory id="serverAppHost"
channelType="Contract.IHost, WcfService.Contract"
endpointConfigurationName="serverAppHostEndpoint" />

<client>
    <endpoint name="serverAppHostEndpoint" address="http://xxxxx:yyyyy/program/service/host" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding1" contract="Contract.IHost"/> 
</client>

私は次のように読むことができます

IApplicationContext ctx = ContextRegistry.GetContext();
IHost val = (IHost)ctx.GetObject("serverAppHost");

上記のエンドポイントに正しい IP アドレスとポート番号があれば、これはすべて正常に機能します。

起動時に認識されない IP アドレスとポート番号を使用するようにエンドポイントを編集するコードの方法を探しています。これを行う方法はありますか?

4

1 に答える 1

0

これに似た問題を解決しました。基本的に、アプリケーションが実行されると、チャネル ファクトリはあまり柔軟ではありません。サービス プロキシを使用して、次のようにエンド ポイントを動的に設定することをお勧めします。

var client = new SampleClient();
client.Endpoint.Address = new EndpointAddress(url);
client.Open();
responseMessage = client.ServiceMethod(requestMessage);

SampleClient は、Visual Studio が生成するサービス プロキシです。それを生成するには WSDL が必要です。Web.config にはダミーの Client/Endpoint タグが必要ですが、動的 URL を読み込むと上書きされます。

詳細が必要な場合はお知らせください。具体的な実装について説明します。

于 2013-02-06T03:45:05.973 に答える