IIS 7.0 / Windows Server 2008 - 在ASP.NET应用程序中找不到DLL

时间:2011-01-28 14:48:23

标签: asp.net iis-7 .net-4.0 windows-server-2008

我尝试使用.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实际上有效,但它根本不是一个令人愉快的解决方案......

5 个答案:

答案 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 ...