2010-04-09 98 views
7

我需要創建一個將由第三方「回叫」的服務。因此,我需要符合他們的WSDL。在WCF服務合同中使用soapAction =「」進行多項操作?

他們的WSDL具有用soapAction=""定義的所有操作,所以我的服務也需要這樣做。不幸的是,我發現了錯誤:

The operations A and B have the same action(). Every operation must have a unique action value.

在ASMX Web服務,有哪裏會不使用的soapAction的模式,但請求元素的名稱將改爲使用。有沒有什麼方法可以使用WCF來分派請求元素,還可以發出一個沒有soapAction的WSDL?

回答

11

這是可能的asmx,但開箱即用,你會發現沒有乾淨的方式來做到這一點在WCF中,因爲它使用動作來分派消息到操作。

我認爲你需要的破解是將你的soapAction設置爲「*」,然後寫一個custom dispatcher

這方面的一個潛在的副作用是一個糟糕的WSDL,如果你需要暴露一個WSDL,你將不得不生成/竊取它,然後使用externalMetadataLocation attribute