ASP.NET Web Service解析错误排查求助
解决ASP.NET添加Web Service引用时的解析错误
以下是针对问题的具体排查和解决步骤:
先验证Web Service本身的可用性
运行你的WebService项目,在浏览器中直接访问http://localhost:[你的项目端口]/CheckID.asmx。如果页面无法正常加载或显示报错,说明服务本身存在问题:- 检查
CheckID.asmx的首行指令是否与后台类匹配,比如:
确保<%@ WebService Language="C#" CodeBehind="CheckID.asmx.cs" Class="WebService.CheckID" %>Class属性的值和后台CheckID.asmx.cs中的命名空间+类名完全一致。 - 排查后台代码的语法错误,确认类继承自
System.Web.Services.WebService,且WebMethod标记正确。
- 检查
检查服务引用的地址正确性
添加服务引用时,必须输入服务运行后的有效URL(比如本地调试的localhost地址),不能直接填写本地文件路径。如果是远程服务,确保该URL能在浏览器正常访问。配置WebService项目的协议支持
打开WebService项目的Web.config,在<system.web>节点下添加或确认以下配置,确保服务支持WSDL的HTTP获取:<webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices>清理并重新生成项目
依次清理WebService项目和引用它的客户端项目,再重新生成整个解决方案,之后尝试重新添加服务引用,避免编译缓存导致的异常。手动生成代理类绕开可视化添加流程
如果上述步骤无效,使用svcutil.exe工具手动生成代理类:- 打开Visual Studio开发者命令提示符
- 运行命令(替换为你的服务URL):
svcutil.exe http://localhost:[端口]/CheckID.asmx?wsdl /out:CheckIDProxy.cs - 将生成的
CheckIDProxy.cs文件添加到客户端项目,手动配置绑定和端点,验证服务是否能正常调用。
内容的提问来源于stack exchange,提问作者Shalev Lavi
相关产品推荐
相关产品推荐

