IIS 如何知道 Visual Studio 项目要使用哪些 DLL

Tyl*_*nes 3 asp.net iis visual-studio

在我的开发计算机上,我让 IIS 指向我的 ASP.NET Web api 项目的根项目文件夹,并且这有效。所以我的问题是,IIS 如何知道 dll 位于“bin”文件夹中,而不是位于根目录中?除此之外,我已经切换了我的CPU目标,所以现在bin文件夹中有很多dll,那么IIS如何知道“bin”文件夹中使用哪个dll,有没有办法配置它的dll用途?

Lex*_* Li 6

加载程序集的不是 IIS,而是 ASP.NET 模块(或aspnet_isapi.dll) 。webengine4.dll更多信息可以在以下位置找到:

https://blog.lextudio.com/the-rough-history-of-asp-net-on-iis-8f49e2bcefcd

实际装载机

  • 首先检查Global.asax(硬编码名称)以了解HttpApplication要加载哪个派生类(作为传入请求的 ASP.NET 管道)。
  • bin然后扫描(硬编码)中的程序集bin以找到实际的HttpApplication派生类。调用它的protected void Application_Start()方法来执行所有注册(路由等)。

所以 IIS 不知道 ASP.NET 是什么。ASP.NET 通过标准接口连接到 IIS。