3

我在我的 MVC 应用程序中创建了一个 Web 服务。所有合约都使用相同的命名空间。AssemblyInfo.cs还映射ContractNameSpacewith ClrNameSpace

生成的 WSDL 没有定义我的合同类型。

这是我使用 ServiceStack 的第二个项目。然而,结果是不同的。为了让 ServiceStack 正确生成 WSDL,合约是否必须驻留在不同的程序集中?

4

4 回答 4

1

该问题已在最新的 ServiceStack 版本中得到修复:https ://github.com/ServiceStack/ServiceStack/issues/306

于 2013-02-08T10:21:25.707 回答
1

确保您没有使用像 WCFStorm 这样的狡猾工具。即使使用当前的 ServiceStack 版本,我也遇到了同样的问题。我切换到soapUI,一切正常。

于 2013-04-12T07:53:36.587 回答
0

WSDL 和 XSD 中的类型由您的服务中使用的请求 + 响应 DTO 确定,即它们需要被您的服务使用才能包含在内。

还要确保通读SOAP 限制以确保没有遗漏任何内容。

如果您仍然认为这是一个问题,请通过显示问题的 gist 或 pull-request 提交一个独立的项目。

于 2012-10-20T23:12:01.220 回答
0

您的问题与我遇到的问题相同因此我将在此处发布我的解决方案:

我已经下载了源代码并自己进行了一些调查。我不确定此更改有多近,但似乎为了将您的 DTO 和响应对象包含在 wsdl 中,您需要添加一个查询字符串,如“?includeAllTypes = true”。

我还使用了 ServiceStack BasicAuthProvider 设置,它导致 AssignRoles 和 UnAssignRoles 自动添加到服务中。这些调用的请求和响应对象仍然无法进入 wsdl 并导致“添加服务引用”失败。幸运的是,我们没有使用它们,所以如果我能找到另一个配置设置来删除它们,它们应该都能正常工作。

于 2012-11-28T21:14:44.143 回答