2008-10-24 6 views
6

я получил ошибку, когда ссылка .NET Framework 2.0 сборки пыталась выполнить следующую строку коды в IIS прошли службу WCF:WCF и System.Configuration имена

Сообщение об ошибке:

ExePath должен быть указан, если не , работающий внутри автономного exe.

Исходный код:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

Кто-нибудь сталкивался с этим вопросом и они знают, как решить это?

EDIT: Мой вопрос: каким образом можно открыть файл конфигурации (app.config и web.config) из службы WCF, которая обратно совместима с сборкой .NET 2.0?

ответ

3

Я был в состоянии решить эту проблему конфигурации путем удаления существующего кода из моего provious ответа и замены его после реализации ConfigurationManager:

string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting"); 

Если работает для приложений ASP.NET, приложений WinForms и служб WCF. Я только что переработал начальную реализацию моей библиотеки классов 3 года назад ....

1

Это зависит от того, что вы пытаетесь выполнить. На ASP.NET вы обычно не использовали ConfigurationManager для таких вещей, как WebConfigurationManager. Тем не менее, нет точного эквивалента, поскольку на самом деле пользователь/роуминг/etc, который разрешает OpenExeConfiguration, не имеет смысла в веб-приложении.

Для чего это необходимо?

5

Связанная сборка .NET 2.0 является частью библиотеки классов, которую я разработал для нашей корпоративной библиотеки для обработки общих задач. Он предназначался для использования в приложениях ASP.NET и WinForm.

Вот исходный код, который я использовал, чтобы определить, какой тип файла конфигурации, чтобы открыть:

//Open app.config or web.config file 
if (HttpContext.Current != null) 
    this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~"); 
else 
    this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
Смежные вопросы