我在.Net 3.5中编写了一个HttpModule,并尝试安装在IIS 10服务器的服务器根目录上。我使用gacutil.exe v7.0A成功安装了它,并使用/ l命令确认我的模块存在。我将以下配置添加到C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config:
<add name="ModuleModEF35" type="ModuleModEF35.MyModule, ModuleModEF35" preCondition="managedHandler" />
浏览子网站时出现FileNotFoundException。由于某些原因,我无法将模块放在单独的\ bin文件夹中,尽管我知道它确实可以工作。
namespace ModuleModEF35
{
class MyModule : System.Web.IHttpModule
{
void IHttpModule.Dispose()
{
}
void IHttpModule.Init(HttpApplication context)
{
context.BeginRequest += Context_BeginRequest;
}
private void Context_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
if (context.Request.RawUrl.Contains("%EF"))
{
context.Response.Redirect("https://http.cat/403");
context.Response.End();
}
}
}
}