2014-11-20 4 views
0

У меня есть приложение, находящееся в виртуальном каталоге. Она имеет следующие настройки в своем Web.config:Доступ к настройкам web.config из внешней программы

<appSettings> 
    <add key="SomePath" value="C:\Somepath\whatever"/> 
    ........other settings......... 
</appSettings> 

У меня есть исполняемый файл, который работает снаружи приложение, которое необходимо, чтобы прочитать это значение:

System.Configuration.Configuration config = 
    WebConfigurationManager.OpenWebConfiguration("/MyApplicationVirtualDirectory") 
    as System.Configuration.Configuration; 
string path = config.AppSettings.Settings["SomePath"].Value; 

Это вызывает ошибку компиляции:

'System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]' is inaccessible due to its protection level

Какой у меня смысл, потому что web.configs в виртуальных каталогах содержит некоторую конфиденциальную информацию, такую ​​как строки подключения, и т. Д., Но я хотел проверить и убедиться, что я не делаю ничего плохого и что мое понимание верное. Если нет, как мне получить доступ к этому параметру из моего внешнего исполняемого файла?

+0

Я уже много раз использовал ответ на этот вопрос без проблем: https://stackoverflow.com/questions/21171894/reading-external-configuration-file Возможно, вам стоит изучить другой способ совместного использования конфигурации. –

ответ

1

Это своего рода круглый путь решения проблемы, но так, как я это делал в прошлом. Вы можете просто сделать страницу в своем веб-приложении, которая даст нужный вам параметр, а затем использовать HttpWebRequest для доступа к этой странице в вашем исполняемом файле.

В противном случае это вопрос разрешения. Вы можете использовать разрешения в файле Web.config или попробовать запустить исполняемый файл в качестве администратора.

+0

Hmph. Теперь я не получаю ошибку недоступности, но null ref. 'AppSettings.Settings [" SomePath "]' возвращается null – tnw

+0

Пытался сделать еще несколько копаний. Я думаю, что первое решение, которое я описал, - лучший вариант. –

Смежные вопросы