在webservice中发生错误时,ASP.net自定义错误页面重定向失败?

时间:2011-06-28 14:32:55

标签: asp.net web-services

我们有针对网络服务的自定义错误页面。自定义错误页面在测试环境中正确显示。同样在生产环境中失败,显示“运行时错误”页面,显示如何设置CustomErrors。

我在Web.config中有以下代码:

<customErrors mode="RemoteOnly" defaultRedirect="WebServiceError.aspx"/>

我在webserviceerror.aspx

中有以下代码
Response.ContentType = "text/xml";
Response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>");
Response.Write("<WebServiceError>");
Response.Write("<ErrorCode>9999</ErrorCode>");
Response.Write("<ErrorDescription>Errore Tecnico</ErrorDescription>");
Response.Write("</WebServiceError>");

1)我能够在没有任何浏览器问题的情况下打开WebServiceError.aspx。
2)我尝试过使用html文件WebServiceError.html,这也失败了
3)我试过在web.config中提到引用webserviceerror.aspx的absoulte和相对路径
4)我检查过web.config文件是否正确,没有任何问题。

我很久以来一直无法找到解决方案,请帮忙。

提前致谢,
普拉迪普

1 个答案:

答案 0 :(得分:3)

想到几点:

您应该始终<customErrors>标记中包含错误页面的路径。

<customErrors mode="RemoteOnly" defaultRedirect="/myErrorPageFolder/WebServiceError.aspx">

mode="RemoteOnly"属性告诉IIS,您只希望在从托管站点的计算机以外的计算机请求页面时查看自定义错误页面。如果您在同一个盒子上运行浏览器和Web服务器(通常在使用VS Web服务器或本地IIS实例进行调试时),您将看不到自定义错误页面。

如果webServiceError.aspx中存在任何错误,则无法正常使用。

您是如何调用Web服务的?您是否尝试过查看Fiddler中的请求和响应?