我在为 ServiceStack SOAP+REST 服务生成正确的 WSDL 时遇到了一些问题。
主要问题是,当我使用 AddServiceReference 时,生成的 IOneWay 会被填充,并且方法都返回 void。查看提供的 SOAP 示例,看起来应该填充 ISyncReply(当前根本没有操作),并且响应类型应该是 DTO + Response 对象中的字段之一。我究竟做错了什么?
- 类型和操作分布在多个命名空间中,但它们都被 AssemblyInfo 中的单个 ContractNamespace 引用
- 遵循 DTO + Response 命名约定
- 我认为这可能是继承的请求/响应类型的问题,但即使完全删除它们也不会改变这种情况,尽管显然你不能从一个具体的类型继承,即使是在一个命名的命名空间中,并且操作参数是正确生成
- 使用显式 [DataContract]/[DataMember] 注释并没有什么不同
- REST 调用似乎按预期工作
- 我正在使用最新的 ServiceStack 二进制文件
- WSDL 根本没有 wsdl:output 元素
- 同时应用 SOAP 1.1 和 SOAP 1.2 wsdls
- 只是为了使情况更加复杂,在 http://*/metadata 中为每个操作生成的元数据似乎是完全准确的!
如果我可以提供任何具体的进一步信息,请告诉我。