• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

「WSL2使用出现的0x8007273d错误解决」后端实践| 青训营

武飞扬头像
风信2022
帮助1

本文后端实践第三篇。总共第五篇。

一、问题介绍:

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):

  1. 下载 Nolsp.exe:www.proxifier.com/tmp/Test202…
  2. 通过 NoLSP.exe "C:\Windows\System32\wsl.exe"配置 nolsp,它会添加适当的注册表项。
  3. 关闭所有 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 版本有不同的安装文件夹名。

步骤:

  1. 下载 Nolsp.exe: www.proxifier.com/tmp/Test202…
  2. 运行 NoLSP.exe "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\wsl.exe", 它会添加一个正确的注册表。
  3. 运行 NoLSP.exe "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\wslservice.exe" ,它将添加一个正确的注册表。 (注意:如果你使用的是不同的版本,记得在以上两步使用你的WSl安装文件夹名来替换掉1.2.5.0_x64__8wekyb3d8bbwe
  4. 运行 wsl --shutdown && net stop WslService && net start WslService,关闭所有 wsl 终端并重新打开 wsl 现在,wsl2 可以正常工作了。

另外,请注意,每次 wsl 更新后,WindowsApps 的路径都会发生变化(因此将来更新后需要重新配置 nolsp)。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbaiga
系列文章
更多 icon
同类精品
更多 icon
继续加载