如何使用 C# 为 IIS 网站添加默认错误页面?

Pragmatically How to add Default Error Pages for IIS website Using C#?

我知道如何使用 Web.config 文件中的 asp.net 为 IIS 网站添加错误页面

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

也可以在IIS中手动添加

但我想根据网站名称添加错误页面。

例如..

Website name: "Foo1"

Error Page Should be: \Foo1\err.html

如何使用控制台或 WinForms 从 C# 添加错误页面。 请帮助我

您可以修改网站中的 web.config 文件,前提是 运行 下的应用程序池具有修改它的正确权限。

这可以使用 WebConfigurationManager class 来完成。

假设您只是想修改 DefaultRedirect,您应该可以使用如下代码:

var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (CustomErrorsSection)configuration.GetSection("system.web/customErrors");
if(section != null)
{
    section.DefaultRedirect = "yourpage.htm";
    configuration.Save();
}

编辑:如果您想通过 Microsoft.Web.Administration 执行此操作,则以下代码应允许您访问特定网站的 Web 配置,并将 customErrors defaultRedirect 设置为新值:

using (ServerManager serverManager = new ServerManager())
{
    Configuration configuration = serverManager.GetWebConfiguration("your website name");

    ConfigurationSection customErrorsSection = configuration.GetSection("system.web/customErrors");
    customErrorsSection.SetAttributeValue("defaultRedirect", "/your error page.htm");
    serverManager.CommitChanges();
}