You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6部署IIS遇DllNotFoundException问题求助

解决ASP.NET Core 6部署IIS后DllNotFoundException问题

1. 排查DLL依赖项缺失

本地VS能正常运行,大概率是IIS服务器缺少该非托管DLL的间接依赖。可以用这两种工具分析:

  • 打开Dependency Walker加载MGWServicios.dll,查看是否有红色标记的缺失模块
  • 或者在VS开发者命令提示符中执行:dumpbin /dependents "C:\Program Files (x86)\你的DLL所在路径\MGWServicios.dll",从输出里定位未找到的依赖模块

找到缺失的依赖文件后,要么将其复制到站点发布目录的bin文件夹,要么安装对应的运行时包。

2. 手动添加DLL搜索路径

ASP.NET Core在IIS环境下默认不会搜索Program Files (x86)目录,可在代码里手动添加:

using System.Runtime.InteropServices;

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);

var builder = WebApplication.CreateBuilder(args);
// 替换为你的DLL实际所在文件夹路径
SetDllDirectory(@"C:\Program Files (x86)\存放DLL的文件夹");

3. 细化权限检查

  • 确保应用程序池身份(比如ApplicationPoolIdentity)对DLL所在文件夹拥有读取和执行权限,而非仅读取权限
  • 如果使用自定义账户,确认该账户属于IIS_IUSRS组,同时检查DLL文件的NTFS权限是否已添加该账户的访问权限

4. 确认32位模式配置正确

  • 进入应用程序池的高级设置,确认启用32位应用程序已设置为True
  • 发布ASP.NET Core应用时,目标运行时选择win-x86,不要用Any CPU,避免按64位模式加载

5. 从Windows事件日志找具体线索

打开事件查看器,定位到Windows日志 -> 应用程序,查找与MGWServicios.dll相关的错误日志,里面通常会给出更具体的缺失模块名称,帮助精准定位问题。

内容的提问来源于stack exchange,提问作者dlogon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:10:07