远程服务器返回错误: (500) 内部服务器错误。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.WebException: 远程服务器返回错误: (500) 内部服务器错误。
源错误:
行 79: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
行 80: //request.Method = "get";
行 81: HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
行 82: Stream s = response.GetResponseStream();
行 83: XmlTextReader Reader = new XmlTextReader(s);
|
源文件: d:\My Documents\Visual Studio 2010\WebSites\Web\Default.aspx.cs 行: 81
堆栈跟踪:
[WebException: 远程服务器返回错误: (500) 内部服务器错误。] System.Net.HttpWebRequest.GetResponse() +6120499 _Default.Button7_Click(Object sender, EventArgs e) in d:\My Documents\Visual Studio 2010\WebSites\Web\Default.aspx.cs:81 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563 |
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1022
HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
在执行GetResponse的时候,如果服务器报告异常,这个Get行为也会报告异常。
解决的办法是:
1、使用try-catch把这个语句圈起来
2、当抛出异常的时候,可以通过request.GetExceptionResponse(具体名字忘记了,系统有提示)来获得异常时的HttpResponse对象
3、通过2获取的Response对象可以获得错误信息。
此外,你可以把你的strUrl内容直接拿出来,放在浏览器里访问,看是否报告错误,如果有错误,先这里解决了再放到你的代码中使用。
你qq多少?加一下你讨论 我把strUrl放在浏览器里显示,strUrl="http://localhost:1054/WebSite5/WebService.asmx/GetExtOAAddressInfoByDeptId?deptId=1", 我想传参数
因 URL 意外地以“/GetExtOAAddressInfoByDeptId”结束,请求格式无法识别。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 因 URL 意外地以“/GetExtOAAddressInfoByDeptId”结束,请求格式无法识别。
@gja: 你要访问的是WebService,不能用这个方案来达成目的。
要使用WebService,请通过 添加服务引用 的方式解决。
@519740105: 我用get方式传参数,GetExtOAAddressInfoByDeptId是我的方法名(参数1)
都写好了..就是运行时报的错误
@gja: 我知道你是用get方式传递参数。
1、你的webservice是否支持get?
2、从你的错误信息看,可能MS的HTTPREQUEST有拦截的功能。
3、对于WebService,最好走WebService的方式实现。
4、如果你不想走WebService方式实现,也要构建SOAP协议来进行调用。
而你使用GET方式的URL直接访问,实际上是在绕开SOAP协议,这个是不复合WEBSERVICE规范的。
.....都告诉你500错误了,服务器抛异常了,只能去webservice服务器去看,除非服务器把打开异常输出,否则看不到具体信息的。
在webservice的代码中:HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
try cath 然后将异常信息写入服务器上的一个txt文本中。