gpt4 book ai didi

azure - 非托管 win32 dll 未加载到 IIS 8.5、Win Server 2012 R2、Azure 虚拟机上的 .net MVC 应用程序中

转载 作者:行者123 更新时间:2023-12-02 06:51:12 26 4
gpt4 key购买 nike

我正在尝试在 .net MVC 应用程序中使用 win32 DLL。但是我不断收到以下错误 无法加载 DLL 'experiment_dll.dll': 找不到指定的模块

当尝试加载 DLL 的代码执行时,我使用进程监视器来捕获文件系统事件。表明可以看到DLL,大部分文件系统操作成功。

文件系统事件的两个全尺寸屏幕截图 -

Screencapture 1

Screencapture 2

正如您所看到的,其中一项操作的结果之一是仅由读者锁定文件。这是否就是 DLL 加载失败以及错误消息显示找不到 DLL 的原因?

更新: 我发现这个论坛帖子说这个结果实际上是成功的,所以不应该是问题 - http://forum.sysinternals.com/topic21378.html

如果这是权限问题,如何解决?我已经授予应用程序池对 DLL 文件以及 Bin 和 Root 文件夹的完全控制权。

我尝试创建一个测试 MVC 应用程序和一个测试 DLL(它只导出一个接受 bool 并返回相同 bool 的函数)。我尝试制作测试 MVC x86 和 DLL win32(都是发布版本)并设置将启用32位应用程序应用程序池设置为true。我还尝试将测试MVC和DLL x64(均为发布版本)设置为启用32位应用程序 code> 应用程序池设置为 false。我还尝试了任何 Cpu 配置。所有配置都会产生相同的错误,并且都会产生相同的文件系统事件,如屏幕截图所示。

我在发布到 Azure 虚拟机上运行的 IIS 8.5、Windows Server 2012 R2 时遇到此问题。

发布到免费的 mywebsite.azurewebsites.net 或在我的开发计算机上运行时,DLL 加载不会出现问题。

最佳答案

在服务器上使用 Dependency Walker 检查 DLL 后发现,随 Visual Studio 安装的依赖项 MSVCR120.dll 在服务器上不可用。最初我认为因为我自己没有给 DLL 任何依赖项,所以不会有任何依赖项可能丢失。所以我忽略了它。错误的决定!

关于azure - 非托管 win32 dll 未加载到 IIS 8.5、Win Server 2012 R2、Azure 虚拟机上的 .net MVC 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com