Как я могу установить общие заголовки виртуального каталога в IIS через C #? - PullRequest
0 голосов
/ 04 ноября 2019

enter image description here Мне нужно установить значение «Expire Web Content» виртуального каталога на «Немедленно». Это возможно с помощью IIS, но я хочу добиться того же результата с помощью сценария C #.

Как я могу это сделать? Любая подсказка?

1 Ответ

0 голосов
/ 05 ноября 2019

Этого можно добиться, изменив system.webServer / staticContent / CacheControlMode на DisableCacheControl.

Есть два способа добиться этого.

1.Если вы хотите установить его в Site /MyVirtualDIR / web.config

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {

        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetWebConfiguration("Default Web Site" , "MyVirtualDir");

            ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent");

            ConfigurationElement clientCacheElement = staticContentSection.GetChildElement("clientCache");
            clientCacheElement["cacheControlMode"] = @"DisableCache";

            serverManager.CommitChanges();
        }
    }
}

2.Если вы хотите установить его в корневом web.config / location:

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {

        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetWebConfiguration("Default Web Site");

            ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent", "MyVirtualDir");

            ConfigurationElement clientCacheElement = staticContentSection.GetChildElement("clientCache");
            clientCacheElement["cacheControlMode"] = @"DisableCache";

            serverManager.CommitChanges();
        }
    }
}
...