Когда ASP CreateObject создает ваш COM-компонент, он не может передать контекст веб-приложения базовому компоненту .NET.Компонент загружается в стандартный AppDomain по умолчанию так же, как если бы вы использовали CreateObject в файле .vbs и использовали сценарий для его выполнения.
Следовательно, стандарт .NET OpenWebConfiguration
не имеет контекста веб-сайта изкоторый может определить физический путь, который представляет "/", и, следовательно, какой файл web.config загружать.
Если вы можете разрешить имя сайта (как видно из диспетчера IIS), тогда вы можете использовать другую перегрузку * 1006.* который принимает имя сайта в качестве второго параметра.
Если вы можете читать строки зашифрованных соединений таким образом, это может быть другим вопросом, я сомневаюсь в этом.Я никогда не пробовал, но если бы вы могли, я бы поставил под сомнение ценность их шифрования.Метод, которым шифруются разделы конфигурации, предполагает, что только приложение, которое зарегистрировало шифрование, может дешифровать.Ваш COM-компонент не будет принадлежать этому приложению.
Лично, если вы должны соблюдать требования «Команды безопасности», вы можете попросить их предложить, как это сделать.Мой подход заключается в использовании интегрированной безопасности SSPI, поэтому нет необходимости хранить какие-либо пары имя пользователя / пароль в любой форме.