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