2015-10-13 79 views
0

我正在使用wcf服務託管Web應用程序。所以每當我在web.config文件中添加一個新的服務引用這下面的代碼來了,坐在這很明顯現在如何在使用wcf時使端點地址保持靜態

<endpoint address="http://localhost:8426/WcfService1/Service1.svc" 
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1" 
    contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" /> 

我的問題是每次當我添加服務引用端點地址將被添加。我想使該端點地址爲靜態。存儲在web.Config的某處。

變化背後的想法是,當我要舉辦OON不同的服務器可能有超過100個服務引用。所以每次我都不能改變100個端點地址。所以如何讓它變成靜態並訪問它。

回答

1

你的主機上ISS WCF服務後,它將在靜態addess主辦。類似於「www.example.com/WcfService1/Service1.svc」。現在,您想要使用此服務的Web應用程序(具有服務引用)將具有帶客戶端終點地址的web.config。你必須手動替換它。如果您擔心在多個服務中更新它,請查看生成部署配置。構建部署技術可以根據您在配置中部署的環境在配置文件中替換這些配置值。

http://www.asp.net/web-forms/overview/deployment/configuring-team-foundation-server-for-web-deployment/creating-a-build-definition-that-supports-deployment

0

當服務引用一次本地主機你不需要部署後重新生成它們產生。您只需要在web.config文件中更改端點加載器。對於服務,他們可以仍然本地主機,但對於服務消費者(平均clientweb.config中),他們應該包含真正的可訪問的主機名。

如果所有的WCF服務是公開的,應該是從外面看到,他們將可提供主機名,根據您的部署配置。你應該遵循Shetty的建議。

但是你可以用不同的編譯/部署的系統,其中可使用某種對配置文件模板,和主機名稱將與部署過程中的真實主機名代替。

如果您的所有服務都只能用於公開的網絡應用程序,並且所有服務都不應該從外部提供,那麼使用自定義DNS名稱可用於服務,如sales.servise.company.intproducts.service.company.int和硬編碼他們在web.config文件中。 在開發過程中,你只需在您的本地/etc/hosts中指定的主機名文件,並在產品發佈,你可以做同樣的(調整主機的Web應用程序的機器上的文件)或/和這個DNS定義您的私人DNS服務器綁定和負載平衡器

相關問題