在 ASP.NET MVC 3 中以编程方式更改 Web Config 中的自定义错误模式

2024-01-24

如何以编程方式更改 web.config 文件中的自定义错误模式?我需要更改以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections />

...

<system.web>
....

<customErrors mode="RemoteOnly">
   <error statusCode="404" redirect="~/errors/404" />
</customErrors>

To

<customErrors mode="off">
   <error statusCode="404" redirect="~/errors/404" />
</customErrors>

有人对此有任何想法吗?

UPDATE

As 代码瘾君子答案,我尝试使用这个:

Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
CustomErrorsSection CustomErrorsection = (CustomErrorsSection)config.GetSection("system.web/customErrors");
CustomErrorsection.Mode = CustomErrorsMode.Off;
config.Save();

但有一个例外:

Access to the path 'D:\Projects\MyProject\web.config' is denied.

前几天我发现了一个例子,它在自定义错误配置中发生了很大的变化 http://labs.episerver.com/en/Blogs/Ted-Nyberg/Dates/112276/2/Programmatically-configure-customErrors-redirects/

public static void ConfigureCustomErrors()
    {
        Configuration config = 
        WebConfigurationManager.OpenWebConfiguration("~");

        CustomErrorsSection section = 
            (CustomErrorsSection)config.GetSection(
                "system.web/customErrors");

        //Verify that customErrors exists in web.config
        if (section != null)
        {
            //Only configure if customErrors is enabled 
            if (section.Mode != CustomErrorsMode.Off)
            {
                if(!section.IsReadOnly() && 
                    !section.SectionInformation.IsLocked)
                {
                    //Collection of new redirects to add to 
                    //the customErrors element
                    CustomErrorCollection redirectsToAdd = 
                       new CustomErrorCollection();

                    //Page ID of the page to be used for 
                    //custom error redirects
                    int redirectPageId = 0;

                    //Get existing redirects, if any
                    CustomError redirect404 = 
                        section.Errors["404"];
                    CustomError redirect500 = 
                        section.Errors["500"];

                    //Get URL for 404 redirects
                    int.TryParse(
                        ConfigurationManager.AppSettings[
                             "FileNotFoundPageId"], 
                             out redirectPageId);
                    string fileNotFoundURL = 
                        ToolBox.GetSimpleAddress(
                        DataFactory.Instance.GetPage(
                        new PageReference(redirectPageId));

                    //Get URL for server error redirects
                    int.TryParse(
                        ConfigurationManager.AppSettings[
                        "GenericErrorPageId"], 
                        out redirectPageId);
                    string serverErrorURL = 
                        ToolBox.GetSimpleAddress(
                        DataFactory.Instance.GetPage(
                        new PageReference(redirectPageId)));

                    //If the 404 redirect hasn't been 
                    //specified or if its redirect 
                    //URL is invalid
                    if (fileNotFoundURL!=string.Empty && 
                       (redirect404 == null || 
                       redirect404.Redirect!=
                          fileNotFoundURL))
                    {
                        //Add new 
                        if (redirect404 == null)
                        {
                            CustomError fileNotFoundError = 
                            new CustomError(404,
                            fileNotFoundURL);

                            redirectsToAdd.Add(
                               fileNotFoundError);
                        }
                        else //Modify existing
                        {
                            redirect404.Redirect = 
                                fileNotFoundURL;
                        }
                    }

                    //If the 500 redirect hasn't been 
                    //specified or if its redirect 
                    //URL is invalid
                    if (fileNotFoundURL != string.Empty && 
                        (redirect500 == null || 
                        redirect500.Redirect != 
                           fileNotFoundURL))
                    {
                        //Add new 
                        if (redirect500 == null)
                        {
                            CustomError serverError = 
                            new CustomError(500, 
                            serverErrorURL);

                            redirectsToAdd.Add(serverError);
                        }
                        else //Modify existing redirect
                        {
                            redirect500.Redirect = 
                                serverErrorURL;
                        }
                    }

                    //Add any new redirects
                    foreach (
                        CustomError redirectToAdd in 
                        redirectsToAdd)
                    {
                        section.Errors.Add(redirectToAdd);
                    }

                    //Save web.config if its 
                    //contents have changed
                    config.Save();
                }
            }
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET MVC 3 中以编程方式更改 Web Config 中的自定义错误模式 的相关文章

  • 在 CSHTML 页面中实现 switch 语句

    我正在尝试做一些不同的事情 我有一个包含 ID 的视图 根据 Id 的值 我想更改显示的标题 就像是 switch id case test h1 Test Site h1 case prod h1 Prod Site h1 break 我
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • 使用 401 发送消息:Asp.net Web-api

    我在 ASP NET Web API 中 在登录方法中 我根据数据库检查用户 密码 如果它们不匹配 我将返回 401 状态代码以及invalid user or password method like var content new St
  • 将 UserControl 转换为特定类型的用户控件

    有没有办法将用户控件转换为特定的用户控件 以便我可以访问它的公共属性 基本上 我正在遍历占位符的控件集合 并尝试访问用户控件的公共属性 foreach UserControl uc in plhMediaBuys Controls uc P
  • 如何以一种形式发布两个或多个模型?

    我正在为一个项目开发互联网课程计划应用程序 该课程计划是根据以下模型构建的 使用数据库优先方法中的实体框架生成 public partial class Subject public int Id get set public string
  • 对 HTTP 处理程序的同时请求不起作用

    我的 ASP Net 应用程序中有一个通用 HTTP 处理程序 ashx 它执行一些基本但耗时的计算 将进度语句打印到输出 以便让用户了解情况 执行这些计算涉及读取一些在使用处理程序时锁定的数据文件 因此对处理程序的两次调用不要立即开始处理
  • 使用 AJAX 或多线程加速页面加载

    我的页面有 5 个部分 每个部分大约需要 1 秒来渲染 Page Load RenderSection1 1 sec RenderSection2 1 sec RenderSection3 1 sec RenderSection4 1 se
  • 导出到 CSV 时 Gridview 出现空行

    这个问题是由进一步讨论引发的这个问题 https stackoverflow com questions 6674555 export gridview data into csv file 6674589 noredirect 1 com
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 在多个网页(.cshtml 文件)中使用 Razor @functions

    我有以下功能 我希望可用于我的 asp net 网页 2 应用程序中的多个 cshtml 视图 如何使该功能可用于应用程序中的任何视图 而不是仅一个视图 functions public bool DisplayButton String
  • ASP.NET 更改模板字段中 Gridview 单元格中的文本和颜色

    我在 ASP net 中有 Gridview 显示数据 根据数据 它会根据单元格的值更改颜色和文本 当列不是模板字段时 这可以正常工作 WORKS WHEN IS NOT A TEMPLATE FIELD if e Row RowType
  • Google Chrome 客户端的 ASP.NET MVC 路由问题

    我的 Silverlight 4 应用程序托管在 ASP NET MVC 2 Web 应用程序中 当我使用 Internet Explorer 8 浏览时 它工作正常 但是 Google Chrome 版本 5 无法找到 ASP NET 控
  • ASP.NET MVC ActionFilterAttribute 在模型绑定之前注入值

    我想创建一个自定义操作过滤器属性 该属性在模型绑定期间可访问的 HttpContext 项中添加一个值 我尝试将其添加到 OnActionExecuting 中 但似乎模型绑定是在过滤器之前执行的 你知道我该怎么做吗 也许模型绑定器中有一个
  • 基于网络的应用程序中的图表

    可使用 ASP NET 在网页上显示图表的各种图表工具有哪些 我了解 Dundas 和 Infragistics 等商业工具 我可以用谷歌搜索这个 但我想知道参与者使用过的各种工具 任何可用的免费图表工具也欢迎提及 如果您不介意使用 Fla
  • VSTS/TFS设置环境变量ASP.NET core

    我正在尝试使用 VSTS 将 ASP NET Core 应用程序部署到 IIS 并执行以下任务 然而 经过多次谷歌搜索和浏览 MS 文档后 我找不到为部署设置环境变量的方法 我在环境范围的发布定义中设置的变量未设置为环境变量 知道如何实现这
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • 寻找一种具有尽可能少的比较操作的排序算法

    我想对由人类执行比较的项目进行排序 Pictures 工作项目的优先级 对于这些任务 比较次数是性能的限制因素 需要的最少比较次数是多少 我假设 gt N for N items 哪种算法可以保证这个最小数量 为了回答这个问题 我们需要做出
  • w8 默认平板电脑设置与 WPF 布局冲突

    我有一个 WPF 桌面应用程序 我收到 W8 用户的报告 称我们应用程序中的代码完成窗口未正确对齐 我调查发现它是W8平板电脑设置中的一个设置与wpf中弹出窗口的位置冲突 Default is right handed and then t
  • 一个表可以有两个外键吗?

    我有下表 主键bold 外键输入Italic 顾客表 ID 姓名 平衡 帐户名称 帐户类型 账户类别表 帐户类型 平衡 客户明细表 帐户名称 名字 姓氏 地址 我可以在 Customer 表中有两个外键吗 如何在 MySQL 中实现这一点
  • Yii 高级 url 重写

    注意 ANYTHING ELSE 因此 我有我的控制器和操作 我希望它们能够正常运行 以响应如下示例 for UserContoller with actionList and actionEdit user list user edit
  • 使用 ModelAndView 进行 Spring MVC 验证

    我正在尝试向我的 Spring MVC 应用程序添加验证 在尝试设置验证之前 我一直使用 ModelAndView 来提供 jsp 页面 但错误消息不显示 Model Entity Table name employee public cl
  • 3 个 div 并排 - 中心一个固定宽度,其他 div 占据屏幕空间的其余部分

    我一整天都在尝试为我的网站创建一个 容器 我需要并排放置 3 个 div 中心 div 具有固定宽度 800px 并且位于屏幕中央 其他 div 必须占据左右两侧的所有剩余空间 左边的 div 将位于顶部的某个位置 右边的 div 将位于底
  • 如何从 JTextPane 中获取选择

    我想找出 JTextPane 文本的哪一部分被选中 尝试打电话JTextPane getSelectionStart and JTextPane getSelectionEnd 但它们总是返回等于当前插入符号位置的相同值 我的问题是什么 我
  • 使用网格几何形状和屏幕尺寸根据窗口尺寸调整小部件尺寸

    我想使用网格几何形状根据窗口的大小更改小部件的大小 最大化或最小化 例子 如果创建了一个窗口 并且它的外观在最小化模式下实现 但在扩展时它会显示一些空白空间 我想以这种方式扩展小部件来填充该空白空间 如果改变 LCD 窗口看起来应该是一样的
  • 第一次开发Android应用程序时如何修复java中的“R.menu.main”?

    所以我下载了 Android 应用程序教程告诉我的所有内容 并且我正在使用 Eclipse 但我不断收到错误消息main in R menu main public boolean onCreateOptionsMenu Menu menu
  • Python 套接字超时错误

    我正在 Python 2 7 中编写一个非常简单的 udp 套接字连接 服务器端已启动并运行 我在客户端遇到麻烦 from socket import serverName 127 0 0 1 serverPort 5444 counter
  • 使用 PyDub 消除波形文件开头和结尾处的静音

    如何使用 PyDub 消除波形文件开头和结尾的静音 我想我应该逐段访问并检查它是否静音 但我无法做到 例如我有一个在开头 结尾或两者都有静音的波形文件 如下所示 我想删除文件开头和结尾的静音 例如我想导入它 sound AudioSegme
  • Crystal Report 组汇总总和

    我有一份报告 其中我试图将一组的摘要汇总到另一组 前任 group 1 75 lt sum of the maximums group 2 50 lt max of the group line 1 50 line 2 40 line 3
  • Rails 范围和连接

    我已经尝试了所有我认为可行的方法 但一无所获 在 Rails 3 中 我需要找到车上有 CD 播放器的所有用户 一辆车有一个用户和一台收音机 一个用户属于一辆车 一台收音机有很多辆车 我偶然发现如何通过用户模型中的范围执行此搜索 class
  • 在 SQL Server 中使用标识列为 INSERT 语句指定“NEXT VALUE”

    考虑下表和 SQL微软的INSERT文档 https technet microsoft com en us library dd776381 v sql 105 aspx ColumnValues处理 IDENTITY 列 CREATE
  • Terraform - 将策略附加到 s3 存储桶

    我之前创建了一篇文章来解决创建多个 s3 存储桶而不尝试重复代码的问题 效果很好 Terraform 创建多个存储桶 https stackoverflow com questions 53764505 terraform creating
  • Outlook 中的 VBA 搜索

    我有这个代码可以在我的文件夹中搜索 我确实有一封主题为 sketch 的电子邮件 但 VBA 没有找到它 它转到 ELSE 子句 谁能告诉我出了什么问题吗 Set olApp GetObject Outlook Application Se
  • 直接将单个 XML 文件转换为 DOCX

    我尝试将单个 XML 文件转换为 DOCX 文件 方法是使用 XSLT 将 XML 转换为 XHTML 然后在 MS Word 上打开 XHTML 并将其另存为 DOCX 但我的任务是将任何 XML 结构 DITA TEI DocBook
  • 在 Raspberry Pi 上使用带有 PyAudio 的麦克风时出现 IOError:[Errno 通道数无效] -9998

    各位 坏消息来了 我尝试通过 PyAudio 在 Raspberry Pi 上使用麦克风 但没有成功 麦克风连接到 USB 声卡 当我通过 arecord 时麦克风工作 pi raspberrypi arecord D plughw 0 0
  • TortoiseGit:如何暂时切换到早期版本

    在 Git 中 我对主分支进行了一系列更改 并且还创建了一个名为 BeforeDynamicCasts 的标签 我希望暂时切换到 BeforeDynamicCasts 然后恢复到我的主分支 我该怎么做 我可以切换 签出标签 但不确定之后如何
  • 在 ASP.NET MVC 3 中以编程方式更改 Web Config 中的自定义错误模式

    如何以编程方式更改 web config 文件中的自定义错误模式 我需要更改以下内容