在 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 中的自定义错误模式 的相关文章

  • IIS7 上的 ASP.NET 应用程序 - iisreset 后启动速度非常慢

    我有一个在 Windows 2008 上的 IIS7 下运行的 ASP NET 3 5 网站 当我重新启动 IIS iisreset 然后点击一个页面时 初始启动非常慢 我在 Process Explorer 中看到以下活动 w3wp ex
  • 如何在静态方法中获取会话变量的值?

    我正在使用带有 jQ uery 的 ASP NET 页面方法 如何在 C 中的静态方法中获取会话变量的值 protected void Page Load object sender EventArgs e Session UserName
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • 可排序的 Telerik 网格 + NHibernate、IQueryable 和 ASP.NET MVC

    我正在尝试让 Telerik 网格工作 分页工作正常 我的视图代码如下所示 Html Telerik Grid Model Name Grid Columns columns gt columns Bound o gt o ItemName
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • 如何告诉 razor 不要 html 转义

    我在一个项目中使用 asp net mvc 3 和 razor 在某些情况下 我需要从控制器序列化数组 将其放入视图数据中并将其分配给 js 对象 但是当我使用它输出时 ViewData some array 结果是 html 转义所以我得
  • 获取所有查询字符串对并初始化字典的最佳方法

    我想将所有键 值对存储在我的查询字符串中 www example com a 2 b 3 c 34 进入字典 有没有一种快速的方法可以做到这一点 而无需手动循环所有项目 Try HttpUtility ParseQueryString 它给
  • 如何在c#中生成8字节GUID值? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 GUID 生成 8 字节唯一 ID https stackoverflow com questions 5678177 how to generate 8 bytes unique id fr
  • 管理调试和发布连接字符串

    在 NET SQLServer 应用程序中管理调试和发布连接字符串的好方法是什么 我有两个 SQL Server 一个是生产服务器 一个是构建 调试服务器 我需要一种在部署 ASP NET 应用程序时在这两个服务器之间进行切换的方法 目前
  • 如何为动态创建的按钮创建 onClick 事件处理程序

    目前 我正在为学生宿舍做一个项目 现在我必须实现一些关于学生的搜索策略 这里 当用户单击 aspx 页面中的另一个服务器按钮时 我必须动态创建一个按钮 因此我必须创建新创建的按钮的 onclick 事件处理程序 我使用的代码片段是 prot
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • .NET-MVC - 通过 SSL 重写 URL + 某些 URL?

    我有一个运行 IIS 6 NET MVC 和单个域名的网络服务器 该网站使用 URL 重写来生成如下 URL 域名 com controller action 我愿意强行一 1 个控制器 to use SSL 其他的应该无需 SSL 即可工
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 当从属文本框中没有输入文本时,如何让 gridview 显示所有表格行?

    下面的代码可以正常工作 并根据文本框中输入的文本过滤我的网格视图 当我的文本框中没有输入任何文本时 我没有得到任何结果 并且无法理解为什么 我的问题 如何让gridview显示all当文本框中没有输入文本时表行 MSSQL Search n
  • MVC 操作过滤器和多线程

    我目前遇到了操作过滤器的线程问题 在我的应用程序上 我使用 ActionFilter 来执行每个操作的跟踪 此跟踪将提供统计信息 例如调用的持续时间 并记录参数被派往行动 实际的跟踪实现 由其他团队完成 使用 IDisposable 对象
  • 绑定到 ViewModel 时如何更新 Model?

    我有一个 HttpPost 操作方法签名如下 HttpPost public ActionResult Edit ExistingPostViewModel model Save the edited Post 现在 在过去 当我没有使用
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • 使用 asp.net 发送 20,000 多封电子邮件

    我正在编写一个应用程序 需要向从我们的数据库中选择的学生发送大量电子邮件 每封电子邮件都将进行个性化 包括他们的姓名 学习课程等 因此需要一次发送一个 我可以在 SmtpClient 上循环执行此操作 但我担心我尝试发送的数字最终会遇到超时
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载

随机推荐

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

    我想对由人类执行比较的项目进行排序 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 文件中的自定义错误模式 我需要更改以下内容