WCF:base.Channel调用中不存在指定的注册表项

Pac*_*man 20 c# registry wcf exception

我正在执行以下WCF代码时出现错误:"指定的注册表项不存在":

return base.Channel.GetRateSheet(request);
Run Code Online (Sandbox Code Playgroud)

这是使用它的方法的其余部分:

public GetRateSheetResponse GetRateSheet(GetRateSheetRequest request)
{
    return base.Channel.GetRateSheet(request);
} 
Run Code Online (Sandbox Code Playgroud)

该端点的配置是:

<endpoint address="http://*********/*******/Service.svc"
          binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IBusinessService"
          name="Endpoint_RateSheetService"
          contract="*********.RateSheetService" />
Run Code Online (Sandbox Code Playgroud)

这段代码曾经工作了好几个星期,今天早上开始抛出这个错误.

没有内部异常,我得到的唯一堆栈跟踪是:

at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)
Run Code Online (Sandbox Code Playgroud)

我做了所有常见的轮胎踢:重启VS,重启机器,获得最新版本的源代码.

运行XP 32位.

[编辑:]当我转到解决方案的bin文件夹并直接运行可执行文件时,它可以工作 - 没有错误.从Visual Studio运行时只会发生此错误

nun*_*cal 36

在安装.NET Framework安全修补程序后,人们似乎遇到了类似的问题:MS12-074:.NET Framework中的漏洞可能允许远程执行代码:2012年11月13日

你可以要求微软在这里修复它

解决方法 - 添加以下注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000
Run Code Online (Sandbox Code Playgroud)

适用于64位机器

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000 
Run Code Online (Sandbox Code Playgroud)


Sen*_*han 5

我今天在调试时遇到了这个问题.如果您在VS内部的调试设置中选中"仅我的代码"选项,则例外情况就会消失.