2010-02-07 101 views
0

想象一下開發具有兩個項目(WCF服務/和Web應用程序作爲WCF客戶端)的WCF解決方案。只要我在Visual Studio中開發這兩個項目並將服務引用到客戶端(Web應用程序)作爲服務器參考,就沒有問題。 Visual Studio的自動分配WCF服務器的端口,並配置包括服務器和客戶端暴食到這樣的事情在服務器的所有需要​​的配置:發佈WCF服務器和客戶端及其端點

<service behaviorConfiguration="DefaultServiceBehavior" 
    name="MYWCFProject.MyService"> 
    <endpoint address="" binding="wsHttpBinding" contract="MYWCFProject.IMyService"> 
    <identity> 
     <dns value="localhost" /> 
    </identity> 
    </endpoint> 
    <host> 
    <baseAddresses> 
     <add baseAddress="http://localhost:8731/MyService.svc" /> 
    </baseAddresses> 
    </host> 
    </service> 

,並在客戶端:

<client> 
    <endpoint address="http://localhost:8731/MyService.svc" 
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService" 
    contract="MyWCFProject.IMyService" 
    name="WSHttpBinding_IMyService"> 
    <identity> 
    <dns value="localhost" /> 
    </identity> 
    </endpoint> 
    </client> 

的問題是我想經常在兩臺不同的服務器上發佈這兩個項目,因爲我的生產服務器和服務URL將爲「http://mywcfdomain/MyService.svc」。每次我發佈我的服務器項目時,我都不想更改配置文件。 問題是:Visual Studio 2008中是否有自動更改URL的功能,或者我必須定義兩個不同的端點,並將其設置在我的代碼中(基於我的配置中的一個參數,例如Development/Published)。

回答

0

檢查答案我posted here對於類似的問題(如何以編程方式設置客戶端端點)。

另一種方式來做到這一點,並保持完全聲明是爲您的應用程序編寫一個安裝程序,並讓安裝程序更新配置文件。這個解決方案會更純粹一點,但更難實現,而且完成的方式取決於您使用的安裝程序。