2013-04-16 111 views
0

對於將部署到不同客戶的應用程序使用服務引用存在一些疑問。這是一個在vb.net上的WCF服務,它將託管在Windows服務中,並且將由具有不同IP地址的非常不同的客戶使用。可以這麼說,不同的環境。WCF:生產中的服務參考

我已經做了服務器和客戶端。他們使用客戶端上的服務引用工作得很好,但是由於這些服務需要URL的服務(它的結構如下:net.tcp:// SomeHost:6666/SomeService),問題是:我能做什麼在客戶環境中使用服務參考?我正在考慮像編程式地改變它的URL,但我不知道它是否可能。

當然,主機名將從客戶變爲客戶,但服務引用是靜態的。我想過使用不同的方法,例如:http://mstecharchitect.blogspot.com.ar/2009/01/invoking-wcf-service-without-service.html。但是這會讓我失去服務引用的好處,據我所知,它會創建所需的代理,以便我可以在客戶端使用它。

無論您需要幫助我的其他信息,請不要猶豫,問問。並提前致謝!

+0

只需在配置文件中設置服務的端點地址。 –

回答

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); 
+0

太好了,謝謝!正是我需要的。 – Pona

0

您可以使用不同的配置文件爲每一個客戶,一起來看看在這篇文章Getting Away with Client Config in WCF

+0

我標記@ evgenyl作爲答案,因爲它幫助我更多地瞭解如何使用appsettings,但你的同樣好,謝謝!希望我至少可以對此投票,但我需要超過15個代表點。 – Pona