我正在执行以下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运行时才会出现该错误
最佳答案
在为.NET Framework安装安全修补程序后,人们似乎已经面临similar issues了:MS12-074: Vulnerabilities in .NET Framework could allow remote code execution: November 13, 2012
你可以ask microsoft to fix it here
解决方法-添加以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000
对于64位计算机
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"LegacyWPADSupport"=dword:00000000
关于c# - WCF:指定的注册表项在base.Channel调用中不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14432079/