WebRequest.Create 抛出 IOException “指定的注册表项不存在。”
Posted
技术标签:
【中文标题】WebRequest.Create 抛出 IOException “指定的注册表项不存在。”【英文标题】:WebRequest.Create throws IOException "The specified registry key does not exist." 【发布时间】:2013-03-25 15:03:01 【问题描述】:我正在调用这行代码来访问 azure 服务器:
var request = (HttpWebRequest)WebRequest.Create(uri);
并收到此异常。 有人知道如何管理吗?
mscorlib.dll!Microsoft.Win32.RegistryKey.Win32Error(int errorCode, string str) + 0x189 bytes
mscorlib.dll!Microsoft.Win32.RegistryKey.GetValueKind(string name) + 0x7f bytes
System.dll!System.Net.HybridWebProxyFinder.InitializeFallbackSettings() + 0xb8 bytes
System.dll!System.Net.HybridWebProxyFinder.HybridWebProxyFinder() + 0x1e bytes
[Native to Managed Transition]
[Managed to Native Transition]
System.dll!System.Net.HybridWebProxyFinder.HybridWebProxyFinder(System.Net.AutoWebProxyScriptEngine engine) + 0x37 bytes
System.dll!System.Net.AutoWebProxyScriptEngine.AutoWebProxyScriptEngine(System.Net.WebProxy proxy, bool useRegistry) + 0x190 bytes
System.dll!System.Net.WebProxy.UnsafeUpdateFromRegistry() + 0x67 bytes
System.dll!System.Net.WebProxy.WebProxy(bool enableAutoproxy) + 0x44 bytes
System.dll!System.Net.Configuration.DefaultProxySectionInternal.DefaultProxySectionInternal(System.Net.Configuration.DefaultProxySection section) + 0x3d9 bytes
System.dll!System.Net.Configuration.DefaultProxySectionInternal.GetSection() + 0xbe bytes
System.dll!System.Net.WebRequest.InternalDefaultWebProxy.get() + 0x7e bytes
System.dll!System.Net.HttpWebRequest.HttpWebRequest(System.Uri uri, System.Net.ServicePoint servicePoint) + 0x18d bytes
System.dll!System.Net.HttpRequestCreator.Create(System.Uri Uri) + 0x50 bytes
System.dll!System.Net.WebRequest.Create(System.Uri requestUri, bool useUriBase) + 0x2ec bytes
System.dll!System.Net.WebRequest.Create(string requestUriString) + 0xa3 bytes
【问题讨论】:
好的,LegacyWPADSupport 的解决方案似乎有所帮助,尽管我们有不同的调用堆栈。 你解决过这个问题吗? 是的。这个解决方案对***.com/questions/13141434/… 有帮助,尽管我们有不同的调用堆栈。 @AlexBlokha,您能否分享对您有用的答案并将问题标记为已回答? 【参考方案1】:这个解决方案对 HttpClient request throws IOException 有帮助,尽管我们有不同的调用堆栈。
您需要在注册表中创建这些键。
路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
键:
名称:“LegacyWPADSupport”类型:“dword”数据:00000000
路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework
键:
名称:“LegacyWPADSupport”类型:“dword”数据:00000000
【讨论】:
为了完整起见,密钥位于:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 和 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework 谢谢。格式已经吃掉了点 (\.) 之前的斜线。我已经编辑了答案,以便正确显示。以上是关于WebRequest.Create 抛出 IOException “指定的注册表项不存在。”的主要内容,如果未能解决你的问题,请参考以下文章