2011-10-27 230 views
1

我想了解一下地址=「」在web.config文件WCF基礎知識 - 端點

<services> 
    <service behaviorConfiguration="MyServiceTypeBehaviors" name="user"> 
    <endpoint address="" behaviorConfiguration="ptUserAspNetAjaxBehavior" binding="webHttpBinding" contract="IUser" /> 
    </service> 
</services> 
<services> 
    <service behaviorConfiguration="MyServiceTypeBehaviors" name="controller"> 
    <endpoint address="" behaviorConfiguration="ptUserAspNetAjaxBehavior" binding="webHttpBinding" contract="Icontroller" /> 
    </service> 
</services> 

我加入,我會通過jQuery來調用第二業務部分。我的第一個服務效果很好。正如你所看到的,端點地址是空白的。我正在添加第二個服務,並且我想知道如果我正確地做了它嗎?我可以使用相同的行爲配置和綁定來創建新的服務標籤,但使用不同的合同嗎?

這催生了關於web.config文件中地址的另一個問題。

它爲什麼當它=「」,爲什麼我要使用一個地址?

回答

3

它將與address=""工作時,

  • 你在IIS託管服務和基本IIS的虛擬目錄決定您的服務網址(也就是*.svc文件存在VDIR)。因此,如果您有兩個單獨的服務,並且有兩個單獨的*.svc文件,則配置中的每個條目都可以有address=""設置。但是你不能有兩個端點相同的服務且都有空地址屬性

或:

  • 你的基地址在你的配置爲您服務定義,因此該端點會使用該服務地址的基地址
+0

marc_s - 謝謝你的明確答案。只是爲了澄清,現在我正在使用的服務是本地的,從你的回答中,這就是爲什麼我能夠擁有端點地址=「」。當我將它移動到我的共享服務器時,它仍然可以使用地址=「」,或者我必須將其更改爲http://www.domain.com/services/service.svc – webdad3

+1

@JeffV:只要您承載它在你的共享服務器的IIS內部 - 你仍然可以擁有'address =「」',因爲IIS和存在'* .svc'文件的虛擬目錄決定了服務地址 –