WCF: указанный ключ реестра не существует в base.Channel call
Я получаю сообщение об ошибке: "Указанный раздел реестра не существует", когда выполняется следующий код WCF:
return base.Channel.GetRateSheet(request);
Это остальная часть метода, в котором это используется:
public GetRateSheetResponse GetRateSheet(GetRateSheetRequest request)
{
return base.Channel.GetRateSheet(request);
}
Конфигурация для этой конечной точки:
<endpoint address="http://*********/*******/Service.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IBusinessService"
name="Endpoint_RateSheetService"
contract="*********.RateSheetService" />
Этот код использовался для работы в течение многих недель, и этим утром начинается эта ошибка.
Нет внутреннего исключения, и единственная трассировка стека, которую я получаю:
at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)
Я сделал все обычные шины: перезапустил VS, перезагрузил машину, получил последнюю версию исходного кода.
Запуск XP 32 бит.
[EDIT:] Когда я перехожу в папку bin решения и запускаю исполняемый файл, он работает - без ошибок. Ошибка возникает только при запуске из Visual Studio
Ответы
Ответ 1
Кажется, люди столкнулись с подобными проблемами после установки исправления безопасности для .NET Framework: MS12-074: Уязвимости в .NET Framework могут позволить удаленное выполнение кода: 13 ноября 2012 г.
Вы можете попросить microsoft исправить его здесь
Обходной путь - добавьте следующий раздел реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000
Для 64-битных машин
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000
Ответ 2
Я столкнулся с этой проблемой при отладке чего-то сегодня. Исключение уходит, если вы проверите параметр "Только мой код" в настройках отладки внутри VS.
Ответ 3
Перейдите в → Отладка → Исключения и снимите флажок "Исключения общего времени выполнения языка"
Это должно решить проблему.