Tyler Jones
Tyler Jones

Reputation: 1343

How does IIS know which DLLs to use for a Visual Studio project

On my development machine, I have IIS pointed to the root project folder of my ASP.NET web api project, and this works. So my question is, how does IIS know that the dll's are in the "bin" folder, and not in the root? In addition to this, i have switched my CPU target, so now there are lots of dll's in the bin folder, so how does IIS know which dll's to use in the "bin" folder, and is there a way to configure which dll's it uses?

Upvotes: 3

Views: 739

Answers (1)

Lex Li
Lex Li

Reputation: 63243

It is not IIS but the ASP.NET module (either aspnet_isapi.dll or webengine4.dll) who loads your assemblies. More information can be found in

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

The actual loader

  • First checks Global.asax (hardcoded name) to know which HttpApplication derived class to load (as ASP.NET pipeline for incoming requests).
  • Then scans the assemblies in bin (bin is hardcoded) to locate the actual HttpApplication derived class. Its protected void Application_Start() method is called to perform all registration (routing and so on).

So IIS has no idea what ASP.NET is. It is ASP.NET that hooks to IIS via the standard interfaces.

Upvotes: 6

Related Questions