1

asmx Web サービスを使用する WCF アプリがあります。アプリ内の 100 万箇所で Web サービスを使用しています。

    public string LogOnUser(string username, string password, string db)
    {
        var wsi = new ASMXServiceInterface();
        return wsi.LogIn();
      }

    public string GetNotes(string username, string password, string db)
    {
        var wsi = new ASMXServiceInterface();
        return wsi.GetNotes();
      }

    etc, etc etc...

もちろん、コンストラクターでサービスのURLを設定したいのですが、その自動生成はreference.csで行われ、そこで変更すると機能しますが、参照を更新すると(そして私は更新します)失われ、手動で行う必要があります再びそれを行う:

      /// <remarks/>
    public ASMXServiceInterface()
    {
        this.Url = 
    System.Web.Configuration.WebConfigurationManager.AppSettings["RQTCSServiceURL"];
   }

さまざまなバージョンが実装されているため、Web サービスの URL は動的である必要があります。Web サービスの URL を WCF プロジェクトで一度設定して、サービスの URL を reference.cs で変更しなくても web.config で変更できるようにするにはどうすればよいですか?

4

2 に答える 2

4

UrlBehaviour を動的に変換することにより、Web サービスの自動生成された URL を変更できます。

http://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamicの実行方法の例を参照してください。

于 2012-07-16T22:43:12.497 に答える
3

これを行うには、次のように web.config にキーを追加します。

<add key="webserviceURL" value ="https://mywebservice.com/WebService.asmx" />

次に、コードで次のようにします。

private static WebService createWebService() {
        WebService service= new WebService();

        string url = ConfigurationManager.AppSettings["webserviceURL"];
        if ( !string.IsNullOrEmpty(url) ) {
            service.Url = url;
        }

        return service;
    }
于 2012-07-16T22:42:04.150 に答える