我和IIS网站只包含index.html
和web.config
。我想根据某些条件覆盖请求流程。因此,我找到了一个教程并通过创建一个新的类库来编写我的处理程序:
namespace skmHttpHandlers
{
public class SimpleHandler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
context.Response.Write ("<html><body><h1>Test</h1></body></html>");
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
我构建了库并将skmHttpHandlers.dll
复制到index.html
和web.config
所在的文件夹中。不幸的是,它找不到我的处理程序并显示错误:
无法加载文件或程序集“skmHttpHandlers”或其依赖项之一。系统找不到指定的文件。
我的web.config看起来像这样:
<configuration>
<system.webServer>
<handlers>
<add name="SimpleHandler" path="*" verb="*"
type="skmHttpHandlers.SimpleHandler, skmHttpHandlers"
resourceType="Unspecified"
requireAccess="Script"
preCondition="integratedMode" />
</handlers>
</system.webServer>
</configuration>
我做错了什么?
答案 0 :(得分:0)
IIS在预定义的目录集中查找处理程序程序集。 Web应用程序本身的目录不在列表中,这就是您获取bin
的原因。处理程序的suggested位置是应用程序根目录中的bin
目录。因此,要解决此问题,请在web.config
附近创建skmHttpHandlers.dll
目录并在其中移动{{1}}程序集。
将来,当您遇到类似问题时,可以enable Fusion log获取有关查找程序集的详细信息: