Я пытаюсь добавить некоторые пользовательские свойства в конфигурацию виртуального каталога в IIS, но когда я фиксирую изменения, я получаю исключение DirectoryNotFoundException
Я пробовал несколько способов сделать это, в большинстве случаев что-то вроде этого
var config = serverManager.GetWebConfiguration(serverManager.Sites[0].Name, "mycustomfolder");
var appSettings = config .GetSection("appSettings");
var collection = section.GetCollection();
var elem = conf.CreateElement("add");
elem.SetAttributeValue("key", "createdBy");
elem.SetAttributeValue("value", "me");
serverManager.CommitChanges();
Объект диспетчера сервера четко определен с
using(var serverManager = new ServerManager())
...
То, что я ожидал, будет примерно таким внутри конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
<appSettings>
<clear />
<add key="createdBy" value="me" />
</appSettings>
</configuration>
Вместо этого я получаю ошибку
System.IO.DirectoryNotFoundException: Filename: \\?\C:\inetpub\wwwroot\local\web.config
Error: Cannot write configuration file
at Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager.CommitChanges()
at Microsoft.Web.Administration.ConfigurationManager.CommitChanges()
at Microsoft.Web.Administration.ServerManager.CommitChanges()
Следуя пути, по которому он пытается сохранить, я не вижу подпапки для своих виртуальных каталогов, но я могу создавать их даже программно