加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

BeginRequest触发ASP.NET MVC应用程序中的静态文件

发布时间:2020-12-16 07:15:45 所属栏目:asp.Net 来源:网络整理
导读:我的印象是静态文件(CSS,图像,@ font-face文件等)完全绕过ASP.NET,并由IIS直接提供. 但是,我的BeginRequest事件处理程序正在为每个HTTP请求调用,包括静态文件的请求.这让我很担心,因为我正在创建一个Entity Framework数据上下文,用于该事件处理程序中每个请
我的印象是静态文件(CSS,图像,@ font-face文件等)完全绕过ASP.NET,并由IIS直接提供.

但是,我的BeginRequest事件处理程序正在为每个HTTP请求调用,包括静态文件的请求.这让我很担心,因为我正在创建一个Entity Framework数据上下文,用于该事件处理程序中每个请求的生命周期.如果它们永远不会被使用,我不想创建这些上下文.

我在Windows 7旗舰版上使用IIS 7,没有定义特殊的处理程序映射.我错了吗?这些事件应该解雇吗?

解决方法

我相信默认的ASP.NET MVC站点在web.config中设置了这个.

<modules runAllManagedModulesForAllRequests="true" />

这意味着将为每个IIS请求加载每个.NET模块.这是ASP.NET MVC处理无扩展路由所必需的.它本质上是一个通配符映射,您可以在IIS中编写,它将匹配所有内容并将其路由到位于web.config中的ASP.NET.

阅读更多here,包括一种在不使用.NET 4.0时禁用该行为的方法.这是令人讨厌的,但它是无法处理由asp.net提供静态文件的开销的网站最干净的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读