通过URL调用WebService里面的方法,报“因URL意外地以***结束,请求格式无法识别。”解决方案

来源:互联网 发布:linux重新识别硬盘命令 编辑:程序博客网 时间:2024/04/28 07:59

通过URL调用WebService里面的方法,报“因URL意外地以***结束,请求格式无法识别。”解决方案

因 URL 意外地以“/GetUserInfo”结束,请求格式无法识别。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 因 URL 意外地以“/GetUserInfo”结束,请求格式无法识别。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 
已解决,要在webservice的 <system.web> 节点下加入

<webServices>   <protocols>       <add   name= "HttpPost "   />       <add   name= "HttpGet "   />   </protocols> </webServices> 

直接调用WebService里面的方法是:

http://localhost:3094/Service1.asmx/GetUserInfo?id=1

其中GetUserInfo为WebService里面的方法名,而id为形参(参数名)1为实参(参数的值)

GetUserInfo的签名为:

[WebMethod]
public bool GetUserInfo(int id);

所以URL中的参数名也必须是id,这个id不区分大小写,但是不能写成别的名字。否则就会出错。如下:

System.InvalidOperationException: 缺少参数: Id。
0 0