首页 新闻 赞助 找找看

“/Web”应用程序中的服务器错误。??请问怎么解决

0
悬赏园豆:10 [待解决问题]

远程服务器返回错误: (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

gja的主页 gja | 初学一级 | 园豆:16
提问于:2014-08-19 14:32
< >
分享
所有回答(3)
1

HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();

 

在执行GetResponse的时候,如果服务器报告异常,这个Get行为也会报告异常。

 

解决的办法是:

1、使用try-catch把这个语句圈起来

2、当抛出异常的时候,可以通过request.GetExceptionResponse(具体名字忘记了,系统有提示)来获得异常时的HttpResponse对象

3、通过2获取的Response对象可以获得错误信息。

 

此外,你可以把你的strUrl内容直接拿出来,放在浏览器里访问,看是否报告错误,如果有错误,先这里解决了再放到你的代码中使用。

519740105 | 园豆:5810 (大侠五级) | 2014-08-19 14:57

你qq多少?加一下你讨论  我把strUrl放在浏览器里显示,strUrl="http://localhost:1054/WebSite5/WebService.asmx/GetExtOAAddressInfoByDeptId?deptId=1", 我想传参数

因 URL 意外地以“/GetExtOAAddressInfoByDeptId”结束,请求格式无法识别。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

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

 

 

支持(0) 反对(0) gja | 园豆:16 (初学一级) | 2014-08-19 15:28

@gja: 你要访问的是WebService,不能用这个方案来达成目的。

要使用WebService,请通过 添加服务引用 的方式解决。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-08-19 15:31

@519740105: 我用get方式传参数,GetExtOAAddressInfoByDeptId是我的方法名(参数1)

都写好了..就是运行时报的错误

支持(0) 反对(0) gja | 园豆:16 (初学一级) | 2014-08-19 15:33

@gja: 我知道你是用get方式传递参数。

1、你的webservice是否支持get?

2、从你的错误信息看,可能MS的HTTPREQUEST有拦截的功能。

3、对于WebService,最好走WebService的方式实现。

4、如果你不想走WebService方式实现,也要构建SOAP协议来进行调用。

 

而你使用GET方式的URL直接访问,实际上是在绕开SOAP协议,这个是不复合WEBSERVICE规范的。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-08-19 15:37
1

.....都告诉你500错误了,服务器抛异常了,只能去webservice服务器去看,除非服务器把打开异常输出,否则看不到具体信息的。

思考中 | 园豆:204 (菜鸟二级) | 2014-08-19 17:51
0

在webservice的代码中:HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();

try cath 然后将异常信息写入服务器上的一个txt文本中。

沦落的伤心人 | 园豆:208 (菜鸟二级) | 2014-09-02 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册