我尝试通过 IIS 7.0 运行一个在 Windows Server 2008 x86 上托管的 ASPX 页面,其中包含.NET 4.0. 我将一个应用程序app1
添加到 IIS 的Default Web Site
,映射到包含Web.config
文件的 dir C:\toto\app1
。我遇到的错误是:
无法加载文件或程序集“xxx.dll”或其中一个依赖项等
和xxx.dll
是包装本机 C DLL 的.NET DLL(它们是无法加载的依赖项),它们都位于C:\toto\app1\bin
中。我试图修改 PATH env 变量,使其包含bin
目录(是的,我知道它很糟糕:-)),但这无论如何都不起作用。
我想在 IIS 应用程序级别应该有一些东西,但我看不出...你能帮忙吗?
非常感谢 !
编辑:复制C:\windows\system32
中的本机 DLL 实际上是有效的,但它根本不是一个令人愉快的解决方案...
5 回答
如果它不是 GACd(它似乎不是),简单的答案是:
您需要外部 DLL 位于应用程序的 bin \目录中。
如果在 VS2010 中将其作为参考,请选择它,转到属性,然后将 CopyLocal 值设置为 True。重建应用程序。这应该导致该 DLL 复制到 bin,您的应用程序可以引用而无需任何其他工作。
好吧,最后设法通过将 DLL 复制到
windows\system32
目录来工作(不知道为什么它第一次没有 wotk,可能是 mine...)的错误.application\bin
文件夹不起作用,PATH
变量也没有改变。如果有人知道一个更好的解决方案(我根本没有找到这个可以导致 DLL 碰撞等等),我很高兴听到它!
我认为这将完成这项工作。在服务器上执行此操作。在执行此操作之前,请撤消您已完成的所有操作。转到 START-> RUN 并键入
cmd
然后使用“included”运行以下命令regsvr32 "C:\yourfolder\idrskrn_net14.dll"
。请享用!
我有完全一样的问题。 dll 位于 webapp/bin 目录中,但未加载。我设法将它们放在 inetpub/bin 中并且运行良好。但是,必须存在允许在 webapp bin 目录中加载模块的行为。不知道如何设置这个。
我也有同样的问题。如果我在服务器上本地浏览网站它工作正常,但当我通过域名在互联网上浏览它时,它无法找到站点的 bin 文件夹中的 DLL ...