如何“添加Web /服务引用”到以下Web服务?

时间:2011-02-10 19:20:11

标签: asp.net visual-studio web-services ogc

给出以下网址服务:

http://geoss.compusult.net/wes/serviceManagerCSW/csw?request=GetCapabilities&service=CSW

我如何为服务创建代理类?

更多信息HERE

编辑#1:

上述托管服务正在实施OGC标准(CSW)。该标准的模式是托管HERE。他们有一些WSDL HERE。如果我将URL放到其中一个WSDL到visual studio的“添加引用/服务”中,我会得到一个Web操作列表并生成一个引用。但是,这不起作用,因为它不知道真正的托管服务提供商。所以我不太清楚该怎么做。

编辑#2:

这是它产生的: enter image description here

编辑#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得到了答案,因为当我不认为这是一个故障排除问题时他帮我解决了问题,而是我错过了什么。我应该知道这些架构虽然我认为创建客户端不会那么重要。

3 个答案:

答案 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只是一个提示。