Когда WCF загружает значения из app.config? - PullRequest
1 голос
/ 10 мая 2019

У меня небольшие проблемы с WCF и при загрузке сгенерировано app.config.

Это приложение WPF, которое использует службу WCF. Если приложение запущено без app.config, оно будет создано из встроенного ресурса. Этот только что созданный app.config содержит параметры конфигурации WCF, такие как привязка. Но когда я пытаюсь создать канал, я получаю исключение: Could not find endpoint element with name 'WSHttpBinding_IService. Если я перезапущу приложение с только что созданным app.config, все будет работать как положено.

Из того, что я могу понять, WCF уже загрузил значения из пропущенного app.config до того, как я создам новое. Несмотря на то, что к этому времени нет никаких вызовов для любой функции WCF. Приложение использует (очень старое) Caliburn.Micro и Autofac, и создает новый app.config в конструкторе в ApplicationBootstrapper:

class ApplicationBootStrapper : TypedAutofacBootStrapper<MainViewModel>
{
    public ApplicationBootStrapper() : base()
    {
        MakeSureConfigFileExists();
    }

    // The rest of my code
}

Любые советы, как мне заставить WCF перечитать app.config?

Edit:
Возможно, это дубликат, но мне не удалось обновить раздел system.serviceModel.

Я пробовал:

System.Configuration.ConfigurationManager.RefreshSection("system.serviceModel");

Редактировать 2:
С тех пор я переместил код, который генерирует недостающий app.config, чтобы он запускался в самом начале OnStartup в классе начальной загрузки:

protected override void OnStartup(object sender, StartupEventArgs e)
{
    MakeSureConfigFileExists();

    // The rest of my code
}

1 Ответ

0 голосов
/ 10 мая 2019

Я нашел одно решение, которое заключается в создании нового процесса, в котором я снова запускаю приложение, а затем прекращаю исходное. Это работает нормально, но кажется немного ненужным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...