Вопрос

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

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

  

exePath должен быть указан, когда не   работает внутри автономного exe.

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

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

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

РЕДАКТИРОВАТЬ: Мой вопрос: как лучше всего открыть файл конфигурации (app.config и web.config) из службы WCF, которая обратно совместима со сборкой .NET 2.0?

Это было полезно?

Решение 2

Мне удалось решить проблему с настройкой, удалив существующий код из моего исчерпывающего ответа и заменив его следующей реализацией ConfigurationManager:

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

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

Другие советы

Ссылочная сборка .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);

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

Зачем тебе это нужно?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top