【发布时间】:2011-07-26 16:34:48
【问题描述】:
我必须构建一个消耗大量 Web 服务的 .Net 应用程序。此 Web 服务在 weblogic 下运行。 Web 服务的 WSDL 提到了描述类型的 XSD 文件。
当我尝试使用 VS studio 添加“服务参考”时,我遇到了一些错误:
警告 1 自定义工具警告:无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.XmlSerializerMessageContractImporter 错误:找不到目标命名空间“http://mycustomer/ws/types”的架构。 错误源的 XPath://wsdl:definitions[@targetNamespace='http://mycustomer/ws/wsdl']/wsdl:portType[@name='lbWebPT'] C:\Projects\mycustomerproject\Service References\ClientService\参考.svcmap
用于 wsdl 文件的 portType、Binding 和 port 元素的 X3。
我猜这是因为 xsd 文件中定义的类型缺失。为了解决这个错误,也为了避免重复代码,我在我的 xsd 文件上运行以下命令(在预构建事件命令行中):
"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\xsd.exe" "$(ProjectDir)xsdofmycustomer.xsd" /namespace:"MyCustomer.WebServices.Types" /c /o:"$(项目目录)。”
此命令成功生成了一个代码文件,其中包含XmlRootAttribute 中定义的类型和正确的命名空间。
此代码已放在专用的 VS 项目中。我试图引用服务的项目引用了这个项目。但是,错误仍在发生。
我可以做些什么来解决我的问题?
PS:我能够使用svcutil.exe pathtowsdl pathtoxsd 部分解决我的问题,但我希望能够在 VS 中维护引用以方便使用。
谢谢
【问题讨论】:
标签: wcf visual-studio-2010 .net-4.0 svcutil.exe