生成asp.net Web应用程序DLL要求列表

时间:2010-06-07 14:27:16

标签: asp.net iis

我正在尝试设置一个网络应用程序(ii7 / win7上32位,启用32位设置,所有内容都编译为x86,使用vs2008),但显然有一些dll模块加载问题正在发生。我一直在看procmon和fusion日志,但我没有看到丢失的dll的名字。

我是asp.net的完全新手(但在其他平台上相当重要的经验)。

我知道我可以在二进制文件上调用depends.exe来查看依赖项是什么,但是如何为asp.net做呢?具体来说,是否可以获取iis7为我的应用程序加载的dll列表?

更新:我手动吹掉我的应用程序的所有二进制文件并重建(干净似乎没有做到这一点,我猜)。它现在有点工作了。或者至少它越来越详细。

1 个答案:

答案 0 :(得分:1)

asp.net web项目dll不应该依赖于任何不属于默认.net运行时或项目中显式引用的内容。我首先回顾一下参考文献。 Noramlly一个asp.net web项目有一个bin文件夹,其中包含已编译的网站/ webapplication以及它所依赖的任何dll(除了.net运行时)。这通常由用于创建项目的编程工具完成。

如果你仍然没有找到罪魁祸首,你可以尝试使用Filemon(http://technet.microsoft.com/en-gb/sysinternals/bb896642.aspx)并使用它来观察IIS以查看它正在查找的文件并且没有查找。

另一个选项是检查应该包含在网站/应用程序中的web.config文件。它是一个XML文件,通常有一个Assemblies部分,列出了应该加载的程序集。例如,您可能会看到:

<assemblies>
    <add assembly="MySql.Data, Version=6.2.3.0, Culture=neutral,
    PublicKeyToken=C5687FC88969C44D"/>
</assemblies>

这意味着代码想要使用MySQL.Data.dll,特别是该DLL的6.2.3.0版本。可以同时安装不同版本的.Net dll文件。因此,您可能拥有所需的DLL,但不是Web.Config文件中指定的正确版本。