VS2022远程调试Windows Server 2019 IIS上的ASP.NET Core应用遇阻
一、解决“找不到路径C:\inetpub\wwwroot\myapp\x64”的问题
- 确认x64目录存在性:直接在服务器上导航到
C:\inetpub\wwwroot\myapp,检查x64文件夹及内部tesseract相关文件(如tessdata目录、libtesseract.dll等)是否齐全。若缺失,将本地正常运行的x64目录完整复制到服务器对应路径。 - 改用相对路径引用:避免硬编码绝对路径,通过应用根目录拼接路径,示例代码:
var ocrRootPath = Path.Combine(AppContext.BaseDirectory, "x64"); var ocrProcessor = new OCRProcessor(); ocrProcessor.Settings.TesseractPath = ocrRootPath;
- 检查应用池权限:右键x64目录→属性→安全→添加应用池身份(格式为
IIS AppPool\[你的应用池名称]),赋予读取和执行权限。 - 验证文件完整性:确保服务器上的tesseract文件版本与本地一致,且未被损坏(可替换为本地正常文件测试)。
二、VPN环境下VS2022远程调试附加进程操作
- 服务器端前置检查:
- 以管理员身份运行VS2022远程调试器,配置中允许对应用户连接(或选择“任何用户”),确认默认端口4026(64位)/4027(32位)开放,服务器防火墙允许该端口通行。
- 本地VS2022操作步骤:
- 打开目标ASP.NET Core 6项目,切换至Debug配置。
- 点击菜单栏「调试」→「附加到进程」。
- 「连接类型」选择「远程(Windows身份验证)」或「远程(无身份验证)」(匹配远程调试器配置)。
- 「连接目标」输入
[VPN服务器公网IP]:4026(64位应用,32位则用4027)。 - 点击「查找」,加载服务器进程列表后,找到对应进程:IIS部署选
w3wp.exe(需匹配应用池),自托管选dotnet.exe,选中后点击「附加」。
- 调试注意事项:
- 确保本地代码与服务器发布的Debug版本完全一致,否则断点无法命中。
- 若进程列表加载失败,用
Test-NetConnection [公网IP] -Port 4026测试端口连通性,确认VPN连接稳定。
内容的提问来源于stack exchange,提问作者Renato
相关产品推荐
相关产品推荐

