customErrors mode="Off"后怎么让它显示详细异常,而不要只显示iis 500异常

customErrors mode="Off"后如何让它显示详细错误,而不要只显示iis 500错误
一个网站在自己服务器上测试没任何问题,移植到另一台服务器,某些功能出错且只显示500错误,没有任何更详细的错误提示。
空间商一直坚持说是程序上面限制了不显示错误,可web.config并没有做任何限制,在我们自己服务器,如果有错误的话,都能显示具体的错误。
想问下,IIS更改哪个设置可以让它显示具体的错误信息。

以下是我的web.config设置

<system.web>
        <compilation debug="true">

          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>

        </compilation>
        <!--
            通过 <authentication> 节,可配置 
      ASP.NET 用于识别进入用户的 
      安全身份验证模式。
    -->
        <authentication mode="Windows" />
        <!--
            通过 <customErrors> 节,可以配置
       在执行请求的过程中出现未处理的错误时要执行 
       的操作。具体而言,
       开发人员通过该节可配置要显示的 html 错误页,
       以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
<customErrors mode="Off"/>
</system.web>

这里面并没有隐藏错误的代码设置吧。
------解决方案--------------------
http://bbs.****.net/topics/70390578
------解决方案--------------------
首先不要拿出这么多水货来评价,一定先要亲自写一个测试程序。例如只需要写一行
private void Pagr_Load(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

这时候,你再看是否在页面上显示调试跟踪信息。

网站如果有很严重的bug,是会捕获不了异常的。并不是说有的信息都会显示在页面上。
------解决方案--------------------
这个好说 如果是我  我会写一个类:Page

public class BasePage:Page

我一般习惯于override2个方法..一个是OnInit用来判断用户是否登陆

 protected override void OnInit(EventArgs e)
    {
        if (Session["user"]==null)
        {
            Response.Redirect("~/Login.aspx");
        }
        base.OnInit(e);
    }

一个OnError全局捕获程序(当然page得继承否则不能实现)

 protected override void OnError(EventArgs e)
    {
        string errorMsg = String.Empty;
        Exception currentError = Server.GetLastError();
        errorMsg += "来自页面的异常处理<br />";
        errorMsg += "系统发生错误:<br />";
        errorMsg += "错误地址:" + Request.Url + "<br />";
        errorMsg += "错误信息:" + currentError.Message + "<br />";
        Session["error"] = errorMsg;
        Server.ClearError();
        Response.Redirect("~/resources/500.aspx");
        base.OnError(e);
    }


当然了你看到我的代码一想就知道 如果有错误了 会调转到resources/500.aspx这个页面上

那么在500.aspx上写很少的代码 就可以把错误显示错来了.


  er.Text = Session["error"]==null?"未知错误":Session["error"].ToString();
  Session["error"] = null;