ASP.Net页面在本地工作但在推送到服务器时失败

时间:2015-06-30 14:44:20

标签: c# asp.net

我的网站在本地完善,但每当我将其推送到服务器时,我都会收到一个错误页面。这就是错误告诉我的,这对我来说毫无意义。有人可以协助吗?

  

描述:服务器上发生了应用程序错误。此应用程序的当前自定义错误设置可防止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以在本地服务器计算机上运行的浏览器中查看。

     

详细信息:要在远程计算机上查看此特定错误消息的详细信息,请在" web.config"中创建标记。配置文件位于当前Web应用程序的根目录中。然后该标签应该具有"模式"属性设置为"关"。

<!-- Web.Config Configuration File -->

<configuration>
<system.web>
    <customErrors mode="Off"/>
</system.web>
</configuration>
     

注意:您看到的当前错误页面可以通过修改&#34; defaultRedirect&#34;来替换为自定义错误页面。应用程序的配置标记的属性指向自定义错误页面URL。

     
<configuration>
<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>

1 个答案:

答案 0 :(得分:1)

我建议在global.asax中使用application_error事件来捕获异常,然后在单独的error.txt日志文件中编写异常。

void Application_Error(object sender, EventArgs ex) 
    { 
        Exception e = Server.GetLastError().GetBaseException();
            if (!e.Message.ToUpper().Contains("FILE DOES NOT EXIST."))
            {
               //This function is user defined Method which accepts string as inpout and writes it to error.txt file with date and time.
               WriteTo_ERROR_TXT_File(e.ToString());                              

              //Redirect to custom error display page               
               Server.Transfer("Error.aspx");    
            }        

    }

public void WriteTo_ERROR_TXT_File(string inputString)
    {
        using (System.IO.StreamWriter file = new System.IO.StreamWriter(System.Web.HttpContext.Current.Server.MapPath("Error.txt"), true))
        {
            file.WriteLine(inputString);
        }

    }

通过这种方式,您将捕获所有错误,如果您想要更强大的解决方案,那么您可以使用 ELMAH