2

我在一个 .NET 前端与 Java 后端通信的项目中。我们使用 wdsl's + xsd's 来描述前后端的接口。我在 .NET 4.0 的前端。我们以前用 xsd.exe & wsdl.exe 为接口生成代码,但现在我们想切换到 WCF,所以我正在尝试使用 svcutil.exe。但是,我不断收到错误。我已将其追踪到使用的<import>语句,因此我尝试了 w3 站点中的示例: W3.org 站点导入示例

我已将这 3 个示例文件保存为 StockQuoteService.wsdl、StockQuote.wsdl 和 StockQuote.xsd,并将位置属性设置为这些文件。我已经修复了一个错误(在 StockQuoteService.wdsl 中,绑定应该是 StockQuoteSoapBinding,而不是 StockQuoteBinding)。然后我像这样运行 svcutil:

svcutil StockQuoteService.wsdl *.xsd /serializer:XmlSerializer

并且 presto,与我们的 xsd/wsdl 完全相同的错误:

错误:无法导入 wsdl:binding 详细信息:找不到http://example.com/stockquote/definitions:StockQuotePortType的定义。缺少命名空间http://example.com/stockquote/definitions的服务描述。参数名称:名称 XPath 到错误源://wsdl:definitions[@targetNamespace=' http://example.com/stockquote/service ']/wsdl:binding[@name='StockQuoteSoapBinding']

StockQuotePortType 在 StockQuote.wsdl 中,它包含在 StockQuoteService.wsdl 中,但似乎 scvutil 找不到它。对于我们自己的文件,我们也有类似的情况。

我是 WCF 的新手,谁能解释这里发生了什么?

4

0 回答 0