В документации указано, что передача нулевого значения пути откроет файл web.config по умолчанию.
Глядя на ваш код, вы не видите, что вы на самом деле указываете имя файла конфигурации в вашем пути.
Так что используйте:
OpenWebConfiguration(null)
РЕДАКТИРОВАТЬ: ОК. Я провел дальнейшее расследование, и при передаче значения null откроется файл web.config сервера по умолчанию в папке C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Config, что в данном случае не то, что вам нужно.
Передача "~" должна дать вам доступ к файлу web.config по умолчанию для веб-приложений, и я успешно проверил это в Visual Studio 2008 с .NET 3.5, используя следующий код:
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
config.AppSettings.Settings["test"].Value = "Hello";
config.Save();
Я не уверен, почему это не работает в вашем случае. Я бы предложил разместить точку останова в строке кода, где вы создаете свой объект конфигурации и используете «Непосредственное окно» в IDE Visual Studio, чтобы вызвать статический метод OpenWebConfiguration WebConfigurationManager, чтобы увидеть, какой результат вы можете получить. Если вы введете что-то вроде WebConfigurationManager.OpenWebConfiguration("~").AppSettings.Settings.AllKeys
, это будет означать, что вы успешно обращаетесь к web.config.