IIS如何register/find /bin文件夹中的DLL?

How does IIS register/find the DLLs in the /bin folder?

我在 IIS 下有一个静态 HTML 网站 运行。我需要一条路径来执行某些可执行的操作(发送电子邮件)。我想我会写一个简单的处理程序。

我已将 web.config 配置为:

<add name="Emailer" verb="*" path="sendemail" type="Emailer, Emailer.dll" />

然后我写了一个HttpHandler编译成一个DLL叫Emailer.dll.

然后我天真地在根目录中创建了一个 /bin 文件夹并将我的 DLL 放入其中。

我收到错误:

Could not load file or assembly 'Emailers.dll' or one of its dependencies.

因此,IIS 看到我的处理程序注册并尽职地尝试找到它,但它 "blind" 到我创建的 /bin 文件夹中的 DLL。

那么,是什么让 /bin 文件夹……如此神奇?我刚刚在网站的根目录下创建了一个文件夹,假设其中的任何内容对 IIS 都是可见的。显然,我错了。

如何让 IIS 查找我为程序集创建的文件夹?

(请注意,这最初不是 ASP.Net 网站。通常,在编写 ASP.Net 网站时,我从 Visual Studio 开始具有 web.config 设置的东西。但这是一个空的 IIS 站点,我刚刚向其中添加了一个 "web.config" 和“/bin”文件夹。)

我的问题是您不需要处理程序元素中的 "dll"。只是 "Emailer." 它会自动添加 "dll"。