在将我的 Web 服务访问到 Web 浏览器时,我遇到了一种奇怪的行为,并且在生成时会导致异常。
这是我的场景:
问题是 WCFService2.svc WSDL 的输出包含与 WCFService2 合并的 WCFService1 的所有定义。
此外,当我访问另一个包含与先前生成的 WSDL 同名的方法的 WSDL 时,我得到了这个异常(肯定是因为我的 WSDL 正在合并在一起)。
我还注意到合同的名称有点奇怪,服务名称前有“:”:http://MyCompany.ca/: IWCFService3
有人知道“WSDL 导出扩展”是怎么回事吗?
可能由 IncludeExceptionDetailInFaults=true 创建的 ExceptionDetail,其值为:
System.InvalidOperationException:在调用 WSDL 导出扩展时引发异常:
System.ServiceModel.Description.DataContractSerializerOperationBehavior 合同: http://MyCompany.ca/: IWCFService3
----> System.InvalidOperationException:MyCompany.IWCFService3.Import 操作引用已从 MyCompany.IWCFService2.Import 操作导出的消息元素 [http://MyCompany.ca/:Import]。您可以通过更改方法名称或使用 OperationContractAttribute 的 Name 属性来更改其中一项操作的名称。或者,您可以使用 MessageContract 编程模型更详细地控制元素名称。在 System.ServiceModel.Description.MessageContractExporter.AddElementToSchema(XmlSchemaElement 元素,字符串 elementNs,XmlSchemaSet schemaSet)在 System.ServiceModel.Description.MessageContractExporter.ExportWrappedPart(消息消息,字符串 elementName,字符串 elementNs,XmlSchemaSet schemaSet,