Служба WCF не работает после обновления программы - PullRequest
0 голосов
/ 26 августа 2009

Недавно я добавил ссылку на службу WCF в мою программу. Когда я выполняю чистую установку этой программы, кажется, что все работает, как ожидалось. Но когда я устанавливаю программу на клиент, на котором уже установлена ​​предыдущая версия (без новой ссылки на службу), я получаю исключение, сообщающее, что конечная точка по умолчанию для этой конкретной службы не найдена.

Похоже, что appname.exe.config не обновляется с новыми настройками конечной точки. Есть ли какая-либо причина для этого, и как я могу заставить установщик перезаписать файл конфигурации? Я использую проект установщика Visual Studio 2008 по умолчанию, в котором для параметра RemovePreviousVersions установлено значение True.

Обновление: Моя программа шифрует раздел настроек после первого запуска с помощью следующего кода

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        ConfigurationSection section = config.GetSection(sectionKey);
        if (section != null)
        {
            if (!section.SectionInformation.IsProtected)
            {
                if (!section.ElementInformation.IsLocked)
                {
                    section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
                    section.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);
                }
            }
        }

Когда я не запускаю программу перед установкой новой версии, app.config обновляется.

1 Ответ

0 голосов
/ 26 августа 2009

Вы правы, что это файл конфигурации, который не обновляется.

Есть несколько возможностей:

  • Установщик имеет старую версию файла конфигурации
  • У установщика нет файла конфигурации, и программа использует старый на машине

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

...