0

さまざまな顧客に展開されるアプリケーションに Service References を使用することに疑問があります。これは、Windows サービスでホストされる vb.net 上の WCF サービスであり、さまざまな IP アドレスを持つ非常にさまざまな顧客によって使用されます。いわば環境の違い。

私はすでにサーバーとクライアントを作成しました。クライアントでサービス参照を使用すると問題なく動作しますが、これらにはサービスの URL が必要なので (この構造はnet.tcp://SomeHost:6666/SomeServiceになります)、問題は次のとおりです。お客様の環境に関するサービス リファレンス プログラムでURLを変更するようなことを考えていますが、それが可能かどうかはわかりません。

もちろん、ホスト名は顧客ごとに変わりますが、サービス参照は静的です。http://mstecharchitect.blogspot.com.ar/2009/01/invoking-wcf-service-without-service.htmlのような別のアプローチを使用することを考えました。しかし、これにより、必要なプロキシを作成してクライアント側で使用できるサービス参照の利点が失われます。

他に必要な情報があれば、遠慮なくお尋ねください。そして、前もって感謝します!

4

1 に答える 1

0

コードでホスト名のみを更新する場合は、サービス エンドポイント アドレスを構成ファイル (appsettings など) に保存できます。

appsettings には、net.tcp://{0}:6666/SomeService のようなものが含まれます。

クライアントの (プロキシ) インスタンスを作成する場合、特定のホストを追加し、この作成されたアドレスを渡します。

何かのようなもの:

クライアントの app.config:

  <appSettings>
    <add key="YourService.ClientAddress" value="net.tcp://{0}:6666/SomeService" />
  . . .

次に、コードで、

    string endpointUrl = string.Format(ConfigurationManager.AppSettings["YourService.ClientAddress"], Your_Host_name);
    YourClient client = new YourClient(YourEndpointName, endpointUrl);
于 2013-04-16T17:51:45.897 に答える