怎样在Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记?求高手指点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记?求高手指点相关的知识,希望对你有一定的参考价值。
运行时错误
说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。
详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
1、首先在项目上右键选择“添加”->“新建项”,如下图所示。
2、选择JSON文件,命名为AppSettings.json,然后点击“添加”。
3、在JSON文件中添加配置信息,如下图所示。
4、双击打开Startup.cs 文件,在 Startup 类中添加一个可读写的属性 Configuration。
5、修改 Startup 类,添加 Startup() 这个构造函数,加载 AppSettings.json 文件。
6、最后运行成功以后,在浏览器中显示的结果如下图所示,就完成了。
参考技术A Web.config中用<customErrors>可以自定义默认的出错页面:<customErrors mode="On |off|RemoteOnly" defaultRedirect ="error/customerrorpage.aspx">
<error statusCode="404" redirect="/error/404Page.aspx"/>(如果发生404错误:找不到页面)
<error statusCode="403" redirect="/error/403page.aspx"/>(如果发生403错误:系统验证失败)
</customErrors>
报错模式
(1)关闭模式:一旦发生错误,asp.net 把默认的报错页面显示给本地和远程用户。
(2)开启(on)模式:当报错模式属性被设为“开启”时,asp,net把用户自定义的出错页面,而不是其默认的报错页面显示给本地和远程用户。
(3)只有远程启动(RemoteOnly)模式 :asp.net的报错页面只能被本地用户看到远程用户的访问请求,将会显示自定义的出错页面。
<customErrors>标识节和global.aspx中的application_error事件有什么样的关系呢?
首先:当系统发生错误时,首先是触发在Global.asax中的Application_Error事件,可以再Application_Error事件用Server.GetLastError得到异常,接着系统处理完该事件之后,然后才转向Web.config中指定的错误页面,这里有一点请注意,在转向出错页面之前,asp.net会调用Server.ClearError()来清除所有出错的异常,因此,在出错页面中,并不能用Server.GetLastError得到出错的原因。
为了实现统一的出错页面,并能显示其原因,可以考虑在global.assa内的Application_Error事件中将错误信息存储在Session对象或Cache对象中,然后在自定义错误页面将其取出显示就可以了。也可以在Application_Error事件内直接调用如下代码
protected void Application_Error(Object sender,EventArgs e)
if(Context!=null&&Context.IsCustomErrorEnabled)
Server.Transfer("Error.aspx",false);
Context.IsCustomErrorEnabled是用于判断应用程序是否使用了自定义出错页面,因为Server.Transfer方法会阻止Rsponse.End的内部调用,在服务器内部直接转向,这样在Error.aspx里就可以捕获页面异常了。本回答被提问者采纳
Web.Config“/”应用程序中的服务器错误,怎样修改?
“/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 运行时错误 说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。 详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。 <!-- Web.Config 配置文件 --> <configuration> <system.web> <customErrors mode="Off"/> </system.web> </configuration> 注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。 <!-- Web.Config 配置文件 --> <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> </system.web> </configuration> 我找不到文件,希望有知道的,能详细的告诉我一下步骤,谢谢!
参考技术A 新建一个站点按F5运行
选择添加配置网站就有了
或者没有的话
右键
站点
选择
添加项
网站配置文件
以上是关于怎样在Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记?求高手指点的主要内容,如果未能解决你的问题,请参考以下文章