2012-10-18 28 views
2

我有一個小問題,不知道從哪裏開始。WCF路由和各種終端

我需要做一個訂閱服務,如果返回訂閱後用戶將發送肥皂的唯一地址。它的工作原理像這樣:您通過WCF上的地址http://foo.org/Subscribe發送SOAP和響應你的地址http://foo.org/SubscriptionManager/1,未來消費者將獲得http://foo.org/SubscriptionManager/2

我怎麼能emplement嗎?我發現WCF有一些像ASP.Net Routing之類的東西,我可以像http://foo.org/SubscriptionManager/這樣的路由和訪問2作爲參數,但我還沒有找到類似的東西。

我期待着任何幫助。

+0

你問如何實現一個WCF客戶端,可以發送請求到端點,並讓它返回一個地址作爲響應? – EdmundYeung99

回答

2

我現在的問題是爲什麼你想要將用戶路由到不同的端點?

在我看來,返回服務URI給消費者打電話的想法並不好。

你迫使你的消費者做更多的工作 - 他們必須打一個額外的電話並詢問響應,以找出他們必須呼叫的端點。

如果您的要求是在兩個服務之間傳播負載,您應該提供一個負載平衡端點,然後將請求發送到其他端點。

或者,如果您的要求是根據某些規則將某些用戶路由到某個訂閱服務,那麼您可以查看WCF-Routing

+0

好吧,這個想法是在訂閱,這是我們公司的規格,所以我必須這樣做。我沒有在MSDN上找到如何在運行時生成端點像http://foo.org/SubscriptionManager/1並將其返回給我的客戶。最好的解決方案是,如果我可以製作一個過濾器,將我的消費者通過參數傳遞給服務操作,就像我在我的問題中所說的那樣。 –

+0

WCF-Routing允許您創建過濾器來根據請求消息的內容路由服務請求。但是,更改飛行中的肥皂請求會更棘手。我認爲WCF路由提供了這個功能,稱爲* SOAP Processing *(這篇文章的一半是http://msdn.microsoft.com/en-us/library/ee517422.aspx) –

+0

Hugh,非常感謝您的幫助。對不起,我是新手,所以我不能投你的幫助。我有最後一個問題 - WCF是否支持運行時創建端點,以便我不需要使用路由(對不起,SOAP處理沒有給我一個解決方案,恐怕我需要使用HTTP頭來路由消息)? –