「WSL2使用出现的0x8007273d错误解决」后端实践| 青训营
本文后端实践第三篇。总共第五篇。
一、问题介绍:
WSL是后端开发中常用的工具,能够为后端开发人员在Windows系统下提供Linux环境的原生体验。
当更新到WSL2,遇到一个问题,就是它经常报错“参考的对象类型不支持尝试的操作。Error code:Wsl/Service/0x8007273d”
下面我记录了这一问题的解决方案。
二、解决方案:
首先说结论,这个问题(在我所遇到的情况中)大多数是由于加速器软件或者全局代理类软件修改了系统的Winsock来全局加载代理导致的,而WSL2与其不兼容,所以产生 0x8007273d 错误。
你可以通过简单地命令行中运行netsh winsock reset
(管理员权限,本文后续也默认在管理员权限cmd中运行)来重置Winsock,然后 WSL2 就可以正常工作了。 但也这会使 Proxifier等(使用 winsock 的软件)不再能工作。
如果你希望能使用此类软件也能使用WSL2,请继续向下看:
我首先通过搜索找到了这样一篇文章:wangyj.medium.com/the-solutio…
我发现它的思路是正确的,但对当前最新版本的WSL2(从Micosoft store安装或更新的)而言不适用,需要做一些小调整。 下面分别详细介绍早期版本和当前最新版的详细修复方法。
早期版本的步骤(如果你是新安装的Win系统或从 “启用或关闭Windows功能” 安装的wsl):
- 下载 Nolsp.exe:www.proxifier.com/tmp/Test202…
- 通过
NoLSP.exe "C:\Windows\System32\wsl.exe"
配置 nolsp,它会添加适当的注册表项。 - 关闭所有 wsl 终端并重新打开 wsl 现在,wsl2 可以正常工作了。
(替代方法)如果不想使用 Nolsp.exe 二进制文件,可以使用 regedit.exe 在注册表中手动添加以下项目。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\Windows\System32\wsl.exe"
"PermittedLspCategories"=dword:80000000
(或保存为.reg文件运行导入)
如果你是从 Micosoft store 安装的WSL,或者你曾经运行过 wsl --update
(也是 Store 版 WSL):
这两种情况使用的是 Micosoft Store 中的 wsl2,它们真正执行主要功能的程序路径不同,因此在修复步骤中需要指定 WinApps 应用程序的文件路径("C:\Program Files\WindowsApps\WSl安装文件夹名\wsl.exe"),而不是系统目录中"C:\Windows\System32\wsl.exe",另外,最新版本还涉及wslservice.exe的文件(它作为后台服务运行,也需要重启)
首先,你可以通过在 cmd(admin) 中执行以下指令来查看WSl安装文件夹名:
cd "C:\Program Files\WindowsApps\"
dir MicrosoftCorporationII.WindowsSubsystemForLinux_*
你会看到WSl安装文件夹名,格式类似 MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe
,复制它并且在后续步骤中的路径中替换WSl安装文件夹名,完整的路径类似C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\wsl.exe
。 (不同的 wsl2 版本有不同的安装文件夹名。
步骤:
- 下载 Nolsp.exe: www.proxifier.com/tmp/Test202…
- 运行
NoLSP.exe "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\wsl.exe"
, 它会添加一个正确的注册表。 - 运行
NoLSP.exe "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\wslservice.exe"
,它将添加一个正确的注册表。 (注意:如果你使用的是不同的版本,记得在以上两步使用你的WSl安装文件夹名来替换掉1.2.5.0_x64__8wekyb3d8bbwe
) - 运行
wsl --shutdown && net stop WslService && net start WslService
,关闭所有 wsl 终端并重新打开 wsl 现在,wsl2 可以正常工作了。
另外,请注意,每次 wsl 更新后,WindowsApps 的路径都会发生变化(因此将来更新后需要重新配置 nolsp)。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbaiga
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13