方法一:有時候需要動態設定 WebService 的地址,這樣發布到不同的伺服器時就要重建,為此我們需要在web.config中動態配置WebService的地址,在網上查了很多資料,其中這種方法感覺很好用也很好實現,修改本地的代理類(添加一個新類,繼承你的 WebService代理類)
namespace Web_Service
{
[System.Diagnostics.DebuggerStepThrough(),System.ComponentModel.DesignerCategory("code"),
System.Web.Services.WebServiceBinding(Name = "", Namespace = "")]
public class DynWebService : SelfWebService
{
public DynWebService() : base()
{
//設定預設webService的地址
this.Url = "http://localhost/WebService.asmx";
}
public DynWebService(string webUrl) : base()
{
this.Url = webUrl;
}
}
}
說明:SelfWebService 你引用的 WebService
Web Service的URI部署到設定檔裡
<add key="WebServiceKey" value="http://xxxx/WebService.asmx"/>
最後實現(調用)
private void WebServiceTest()
{
string webServiceUrl = ConfigurationManager.AppSettings["WebServiceKey "].ToString();
Web_Service.DynWebService dws = new Web_Service.DynWebService(webServiceUrl);
string result = dws.HelloWorld();
}
註:HelloWord()為你所調用的Webservice的方法,這裡是假設它返回的是String類型的值!
OK 到這裡就搞定了!
方法二:
你就選擇你的客戶端的web serivce 的那個檔案夾(就像個地球形狀的那個)我的名字是localhost的檔案夾,然後右健選擇屬性 有個url行為然後將靜態修改成動態。web.config裡面會出現
<add key="Webpos.localhost.MyService" value="http://localhost/SoapService/MyService.asmx"/>
我的是這個樣子的可能因你的web service 而異。這個時候
http://localhost/accessWebpos/Web References/localhost/Reference.cs
檔案中會出現
public MyService()
{
string urlSetting = System.Configuration.ConfigurationSettings.AppSettings["Webpos.localhost.MyService"];
if ((urlSetting != null))
{
this.Url = string.Concat(urlSetting, "");
}
else
{
this.Url = "http://localhost/SoapService/MyService.asmx";
}
}