对于我的应用程序,我目前正在使用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服务本身的问题吗?
我也很感激任何有关替代方法的建议,以便更优雅地编码。感谢。
答案 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。
马克