20

执行以下 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 位。

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

4

3 回答 3

36

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

你可以让微软在这里修复它

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000

对于 64 位机器

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000 
于 2013-01-21T04:26:57.040 回答
5

我今天在调试某些东西时遇到了这个问题。如果您在 VS 的调试设置中选中“仅我的代码”选项,异常就会消失。

于 2013-11-11T05:33:27.763 回答
0

转到 --> Debug--> Exceptions 并取消选中“Common Language Runtime Exceptions”

这应该解决问题。

于 2014-05-07T07:59:39.717 回答