添加.ashx作为Web引用

时间:2009-10-28 04:35:39

标签: c# asp.net web-services

对于我的应用程序,我目前正在使用Web服务来检索XML格式所需的一些信息。我现在的方式是通过HTTP Web请求,所以代码看起来像这样:

serviceURL = "http://longurl/webservice.ashx?apikey=key&action=getDetail&id=ID";

HttpWReq = (HttpWebRequest)WebRequest.Create(serviceURL);
HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();

dataXML.Load(HttpWResp.GetResponseStream());

我觉得在我的代码中包含整个URL看起来非常笨重,所以我想到将Web服务添加为Web引用。但是,我在尝试添加Web引用时遇到了此错误:

  

url longurl / webservice.ashx上的文档未被识别为已知文档类型   每种已知类型的错误消息可以帮助您解决问题:
   - 来自“DISCO文档”的报告是“无法找到URL longurl / webservice.ashx上的发现文档。”。      - 无法识别文档格式    - 来自'WSDL Document'的报告是'XML文档中存在错误(2,2)。'。      - 没想到。
   - 来自'XML Schema'的报告是'W3C XML Schema的根元素应该是,它的名称空间应该是''。'。

在尝试添加网络服务之前,我是否遗漏了必须执行的任何步骤?或者这是Web服务本身的问题吗?

我也很感激任何有关替代方法的建议,以便更优雅地编码。感谢。

2 个答案:

答案 0 :(得分:1)

老实说,我把这个网址放在AppSetting中。

使serviceURL = ConfigurationManager.AppSettings [“ServiceUrl”];

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

答案 1 :(得分:0)

“Web引用”旨在用于“旧式”ASMX Web服务,即WCF服务的“服务引用”。您不能使用(或滥用)该功能来实现您的目标。

将您的URL置于配置为“Min”建议,或者更改为真正的WCF服务。使用WCF Rest Starter Kit,您可以非常轻松地创建这些类型的“HTTP Plain Old XML(POX)”服务 - 有关详细信息,请参阅该主题的Pluralsight screencast

马克