我有一个Windows Service解决方案,正在尝试在VS2010中添加对Hermes(开源ebms消息服务器) Web service的服务引用。
我可以使用Web服务的URL找到它,但是当我尝试填充服务引用时,我在Visual Studio中得到了以下错误:
Error 8 Custom tool error: Failed to generate code for the service reference 'testService'. Please check other error and warning messages for details. C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 6 Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:portType[@name='EbmsStatusQuery']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:binding[@name='EbmsSoapHttpStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 7 Custom tool warning: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:binding[@name='EbmsSoapHttpStatusQuery']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:service[@name='EbmsMessageStatusQuery']/wsdl:port[@name='EbmsStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 5 Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter
Error: Schema with target namespace 'http://service.ebms.edi.cecid.hku.hk/' could not be found.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:portType[@name='EbmsStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
一些调查似乎表明,这是由于svcutil.exe无法构建代理,因为没有目录的权限(可能是c:\windows\temp)。我尝试过分配各种访问权限,但我不确定哪个用户需要该权限,或者这只是一个转移注意力的问题。
任何想法都将不胜感激。
谢谢
发布于 2011-08-22 16:53:47
必须从配置服务引用选项中取消选中所有引用的程序集中的重用类型
发布于 2013-10-17 22:58:43
右键单击您的服务引用,然后选择Configure Service Reference...
然后取消选中Reuse types in referenced assemblies
单击OK
,清理并重建您的解决方案。
发布于 2013-03-07 22:09:56
感谢上面的文章。
在我的例子中,我在VS.Net 2008中的WPF项目中遇到了这个问题。读完这篇文章后,我意识到web服务中使用的程序集是客户端使用的程序集的不同版本。
在客户端更新程序集后,它工作得很好。
https://stackoverflow.com/questions/3977560
复制相似问题