2013-04-01 47 views

回答

2

如果你正在主持在IIS中WCF(SOAP)的服務,你需要一個service.svc文件(或至少使用.svc擴展端點文件少服務激活在.NET 4)使IIS瞭解這是一個WCF SOAP端點並相應地路由請求。在IIS,你的生活服務虛擬目錄基本上決定了你的服務端點的地址,因此,你可以使用相對地址(相對於虛擬目錄)來定義服務的端點地址。

如果您在託管應用程序(Windows NT Service或簡單的.NET控制檯應用程序)中自託管您的WCF服務,那麼您不需要.svc文件 - 託管應用程序處理請求 - 但在同時,由於沒有「託管基礎設施」,您需要定義一個**完全限定的「端點地址 - 您不能只使用相對地址(相對於什麼?)

因此您可以無論是有相對地址(在IIS,但有.svc文件),或者你可以有沒有擴展(帶自託管,但你必須提供一個完全合格的服務端點地址)。你不能有兩者在同一時間。

服務端點是否存在並暴露元數據只是將服務行爲添加到服務定義中(或將而非添加)ServiceMetaData服務行爲的問題。

+0

謝謝您的回答。有一個問題仍然存在。我可以在不定義元數據端點的情況下使用服務(合同可供客戶端使用)。 –

+0

@Abc:當然可以。元數據端點僅在您希望允許交互式發現時才需要。如果客戶端* *知道合同和所有相關信息(端點地址和綁定),然後客戶端可以連接並使用的服務 - 沒問題。 –