2012-10-18 83 views
3

我在我的MVC應用程序中創建了一個Web服務。所有合約都使用相同的名稱空間。 AssemblyInfo.cs也映射ContractNameSpaceClrNameSpaceServiceStack WSDL不包括所有類型

生成的WSDL沒有定義我的合同類型。

這是我第二個使用ServiceStack的項目。但結果不同。 合同是否必須駐留在不同的程序集中才能使ServiceStack正確生成WSDL?

回答

0

WSDL和XSD中的類型由您的服務中使用的Request + Response DTO決定,即它們需要由您的服務用於包含。

此外請務必仔細閱讀SOAP limitations以確保沒有遺漏任何東西。

如果您仍然認爲這是一個問題,請通過顯示問題的gist或pull-request提交一個獨立項目。

+0

我應用了包括命名約定和程序集設置的指導原則。但是,響應類型仍未在XSD服務類型中生成。 我使用3.5.1版本的另一個項目,它完美的作品。在新項目中我使用3.9.24版本。有更改響應類型分辨率? –

+0

您是否可以通過要求提交一個空的獨立項目來證明問題? – mythz

+0

請在這裏找到一個示例項目(MVC4主機)https://www.dropbox.com/s/34mwe7g2k8atc15/MvcApplication1.rar –

0

你的問題是相同的issue我有,所以我會後我的解決方案在這裏:

我已經下載了源代碼,並做了我自己的一些調查。我不確定這個改變最近有多近,但是爲了讓你的DTO和Response對象包含在wsdl中,你需要添加一個類似「?includeAllTypes = true」的查詢字符串。

我還使用ServiceStack BasicAuthProvider安裝程序,它會導致AssignRoles和UnAssignRoles自動添加到服務中。這些調用的請求和響應對象仍然無法使其進入wsdl並導致「添加服務引用」失敗。幸運的是,我們沒有使用它們,所以如果我能找到另一個配置設置來刪除它們都應該正常工作。

1

確保您使用的不是像WCFStorm一個狡猾的工具。即使使用當前的ServiceStack版本,我也遇到了同樣的問題。我切換到soapUI,一切工作預計。

+1

我用於測試,但我同意你。 –