给出以下网址服务:
http://geoss.compusult.net/wes/serviceManagerCSW/csw?request=GetCapabilities&service=CSW
我如何为服务创建代理类?
更多信息HERE。
编辑#1:
上述托管服务正在实施OGC标准(CSW)。该标准的模式是托管HERE。他们有一些WSDL HERE。如果我将URL放到其中一个WSDL到visual studio的“添加引用/服务”中,我会得到一个Web操作列表并生成一个引用。但是,这不起作用,因为它不知道真正的托管服务提供商。所以我不太清楚该怎么做。
编辑#2:
这是它产生的:
编辑#3:
按照约翰·桑德斯的评论来检查错误,我得到了以下内容:
自定义工具错误:无法生成 服务引用的代码 'ServiceReference1'。请检查 其他错误和警告消息 细节。 d:\ TEMP \ WebApplication2 \ WebApplication2 \服务 References \ ServiceReference1 \ Reference.svcmap 1 1 WebApplication2
所以我检查了警告,我看到了一些类似的警告:
警告1自定义工具警告:不能 import wsdl:portType详细信息:An 运行a时抛出异常 WSDL导入扩展: System.ServiceModel.Description.XmlSerializerMessageContractImporter 错误:具有目标命名空间的架构 'http://www.opengis.net/cat/csw/2.0.2' 无法找到。 XPath到错误 资源: // wsdl:definitions [@targetNamespace ='http://www.opengis.net/cat/csw/2.0.2/requests'] / wsdl:portType [@ name ='csw'] D:\ temp \ WebApplication2 \ WebApplication2 \ Service References \ ServiceReference1 \ Reference.svcmap 1 1 WebApplication2
这些是我在.NET中使用这些模式时所做的相同类型的警告。模式不适用于任何语言吗?以下是我对.NET和这些模式的痛苦的一些例子: HERE HERE HERE
所以我不确定是否应该责怪模式或.NET无法处理如此大的模式。
事件虽然Marc和Basiclife都提供了通常可用于“正常”模式的答案,但John得到了答案,因为当我不认为这是一个故障排除问题时他帮我解决了问题,而是我错过了什么。我应该知道这些架构虽然我认为创建客户端不会那么重要。
答案 0 :(得分:2)
右键点击您的项目,然后转到Add Service Reference
。点击左下角的Advanced
,然后再点击左下方的Add Web Reference
。
当您输入网址时,它会查找可用的服务,您可以选择这些服务并在项目中为其命名。
修改强>
导入wsdl后,您可以通过应用配置更改其基地址。
编辑2:
我也习惯于WCF服务:-)要更改URL,请右键单击您的引用,转到“属性”,然后将Web Reference URL
更改为您需要的任何内容。
编辑3:
当我添加引用时,我的错误列表中会出现以下警告消息:
Warning 1 Custom tool warning: DiscoCodeGenerator unable to initialize code generator. No code generated. s:\dev\Sandbox\Sandbox\Web References\net.opengis.schemas\Reference.map
这就是Reference.cs
为空的原因。
答案 1 :(得分:2)
右键单击项目,选择Add Service Reference
。输入提供的URL ...
修改强> 添加对WSDL的引用。这就是VS创建代理所需要的。
创建代理后,您可以在应用的web.config
/ app.config
文件中修改实际用于访问服务的网址
答案 2 :(得分:1)
使用实际的WSDL生成服务引用。然后,当您打开代理类时,请使用包含EndpointAddress
的构造函数重载。这将包括实际服务的URL。
WSDL中的URL只是一个提示。