问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

网站提示Web.Config 配置文件 错误 ,大吉帮忙看下!

发布网友 发布时间:2022-05-12 13:42

我来回答

4个回答

懂视网 时间:2022-04-21 06:35

如果你的网站出现一堆让人看不懂的报错,那么你就不是一个合格的程序员,也不是一个合格的站长。

下面的方面可以帮助你的网站远离让人头大的页面。

第一步:配置web.config

打开web.config,在节点下添加如下代码:




第二步:建立错误页面

在网站根目录下建立404页面(找不到页面):404.html

403页面(服务器禁止访问):403.html

这样就可以解决一部分问题,但是如果我们程序有些bug,碰巧被用户发现,那么还是会返回给用户一个不友好的报错页面。所以我们还要建立一个ErrorPages.aspx捕捉那些我们不知道的错误页面,用以处理那些报错,显示给用户良好的页面。

第三步:捕捉未知错误,显示友好提示信息。

在ErrorPages.aspx.cs中加入以下代码:

[c-sharp] view plain copy

  1. if (!IsPostBack)
  2. {
  3. HttpException erroy = new HttpException();
  4. string strCode = erroy.ErrorCode.ToString();
  5. string strMsg = erroy.Message;
  6. StringBuilder sb = new StringBuilder();
  7. sb.Append("-----------记录开始时间:" + System.DateTime.Now+"-----------------
    ");
  8. erroy.HelpLink = Request.QueryString["aspxerrorpath"];
  9. sb.Append("ErrorCode:" + strCode + "
    ");
  10. sb.Append("Message:" + strMsg + "
    ");
  11. sb.Append("HelpLink:" + erroy.HelpLink + "
    ");
  12. sb.Append("Source:" + erroy.Source + "
    ");
  13. sb.Append("TargetSite:" + erroy.TargetSite + "
    ");
  14. sb.Append("InnerException:" + erroy.InnerException + "
    ");
  15. sb.Append("StackTrace:" + erroy.StackTrace + "
    ");
  16. sb.Append("GetHtmlErrorMessage:" + erroy.GetHtmlErrorMessage() + "
    ");
  17. sb.Append("erroy.GetHttpCode().ToString():" + erroy.GetHttpCode().ToString() + "
    ");
  18. sb.Append("erroy.Data.ToString():" + erroy.Data.ToString() + "
    ");
  19. sb.Append("----------记录结束----------------");
  20. Response.Write(sb.ToString());
  21. }

到此为止:网站错误配置完成。当然错误处理页面你可以随意定义,你可以把捕捉到的错误写入数据库或者文件,只显示一些提示信息给用户,你也可以把错误信息处理后友好的显示给用户。

还有一种方法是在Global.asax中的void Application_Error(object sender, EventArgs e)方法中定义;现给以大体方法,具体操作可以根据实际情况给以修改。

在Global.asax文件中修改:

void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
Exception erroy = Server.GetLastError();
string err = "出错页面是:" + Request.Url.ToString() + "
";
err += "异常信息:" + erroy.Message + "
";
err += "Source:" + erroy.Source + "
";
err += "StackTrace:" + erroy.StackTrace + "
";
//清除前一个异常
//Server.ClearError();
//此处理用Session["ProError"]出错。所以用 Application["ProError"]
Application["erroy"] = err;
//此处不是page中,不能用Response.Redirect("../ErrorPages.aspx");
System.Web.HttpContext.Current.Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/ErrorPages.aspx");

}

在ErrorPages.aspx.cs文件中修改

protected void Page_Load(object sender, EventArgs e)
{
//显示程序中的错误码

if (!IsPostBack)
{

//显示程序中的错误码

if (Application["erroy"] != null)
{

Response.Write(Application["erroy"].ToString());

}

}

}

补充:使用上述方法实现的跳转,返回的HTTP状态码全部是302,本来应该返回404的也给返回302.这样对搜索引擎优化很不利。所以我们应该在Global.asax文件中添加如下代码:

[c-sharp] view plain copy

  1. protected void Application_Error(Object sender, EventArgs e)
  2. {
  3. System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/Web.config");
  4. System.Web.Configuration.CustomErrorsSection customErrors = (System.Web.Configuration.CustomErrorsSection)config.GetSection("system.web/customErrors");
  5. if (customErrors != null && (customErrors.Mode == System.Web.Configuration.CustomErrorsMode.On || customErrors.Mode == System.Web.Configuration.CustomErrorsMode.RemoteOnly))
  6. {
  7. System.Web.HttpApplication app = (HttpApplication)sender;
  8. System.Exception lastError = app.Server.GetLastError();
  9. System.Web.HttpException httpEx = (HttpException)lastError;
  10. if (httpEx != null)
  11. {
  12. int httpErrorCode = httpEx.GetHttpCode();
  13. string redirect = customErrors.DefaultRedirect;
  14. foreach (System.Web.Configuration.CustomError error in customErrors.Errors)
  15. {
  16. if (error.StatusCode == httpErrorCode) redirect = error.Redirect;
  17. }
  18. app.Server.ClearError();
  19. app.Context.Response.StatusCode = httpErrorCode;
  20. Server.Transfer(redirect);
  21. }
  22. }
  23. }

这样问题就得以解决了。

热心网友 时间:2022-04-21 03:43

<customErrors>节点

<customErrors>节点用于定义一些自定义错误信息的信息。此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:

Mode 说明

On 表示在本地和远程用户都会看到自定义错误信息。

Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。

RemoteOnly 表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。

这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时成为本地用户,反之则称之为远程用户。在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。

下面我们添加一个页面CustomErrorsDemo.aspx,在它的Page_Load事件里抛出一个异常,代码如下:

 

using System; 

using System.Data; 

using System.Configuration; 

using System.Collections; 

using System.Web; 

using System.Web.Security; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.WebControls.WebParts; 

using System.Web.UI.HtmlControls; 

public partial class CustomErrorsDemo : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 

    { 

        throw new Exception("故意抛出的异常。"); 

    } 

}

我们先配置<customErrors>如下:

<customErrors mode="RemoteOnly"> 

     <error statusCode="403" redirect="NoAccess.htm" /> 

     <error statusCode="404" redirect="FileNotFound.htm" /> 

</customErrors>

这时本地运行CustomErrorsDemo.aspx的效果如下:

  

远程访问时看到的效果:

  

如果我们将customErrors的Mode属性设置为“On”本地运行和远程访问都会看到如下效果:

  

如果将customErrors的Mode属性设置为“Off”本地运行和远程访问都会看到如下效果:

  

<error>子节点

在<customErrors>节点下还包含有<error>子节点,这个节点主要是根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。下面是一个例子:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 

     <error statusCode="403" redirect="403.htm" /> 

     <error statusCode="404" redirect="404.htm" /> 

</customErrors>

在上面的配置中如果用户访问的页面不存在就会跳转到404.htm页面,如果用户没有权限访问请求的页面则会跳转到403.htm页面,403.htm和404.htm页面都是我们自己添加的页面,我们可以在页面中给出友好的错误提示。

热心网友 时间:2022-04-21 05:01

给我解决一下好吗

热心网友 时间:2022-04-21 06:36

网站里 ASP.NET 版本问题.不支持1 .1的 可以尝试换成2 .0
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 Q宠物24小时挂着每小时572点成长要多久能到71级? 砖机 十万火急求救 开不开机了 卡在RESCUE MODE ERROR Q宠物多少级能结婚 怎样结婚 为什么设置了&lt;customErrors mode=&quot;Off&quot;/&gt;还是无法显示错误 机子做系统的时候 出现VBE Mode Error 为什么createprocess failed with error 2系统找不到指定文件 本本出现VBE MODE ERROR是什么意思? 至q宠物屋的正版手游的名字叫什么 无法定位程序输入点setthr eaderrormode 于动态链接库 kernel32.dll 哪位大神知道至q宠物屋主题曲是什么 至q宠物屋 小糖粒唱歌是第几集 至Q宠物屋参加好声音在第几集 山药做成粉作成还是做成膏哪种好存放 建行atm机吞钱怎么处理 建设银行吞钱9天都没消息怎么办?第一次在建行的ATM机上存万元以上的 物业管理责任保险保障范围 做台湾香肠可以放红糖 牛奶脂肪越低就越健康? 初中背历史的方法 拿起教科书不知道从何处开始背起 怎么计算自己炒股至今是赚了还是亏了 一拳唐僧大结局在奶爸的第几章 QQ宠物从结婚到生宠物蛋详解 数控报警mode select error是啥意思 《一拳唐僧》txt下载在线阅读全文,求百度网盘云资源 QQ的抓图的功能为什么抓不到QQ宠物? 请问使用pspice软件建立模型进行仿真时,模型建立好了,但在电路里面进行仿真时出现ERROR -- Missing mode 一拳唐僧好看吗 一拳唐僧怎么样 customErrors mode=&quot;RemoteOnly&quot; 中remoteonly是什么意思? QQ宠物怎么能养好 我想找回一本很久以前看过已经完本的小说,结局是两个乐园的对决,和轮回乐园有一点相似的 error reformat modea Python创建txt时报错IOError:[Errno 22]invalid mode(&#39;w&#39;) 孙悟空的师傅有什么鲜为人知的秘密身份吗? 什么是主旨演讲 唐僧告诉孙悟空什么才是真正的当当当 求&lt;&lt;大话西游&gt;&gt;经典对白. 唐僧大话西游的经典台词... 主题发言是什么意思 西安什么地方热米皮最正宗? 找一本西游小说,除了主角变成了唐僧都被娘化了