我有一个ASP.NET web项目,它(在其他方面)提供一些静态文件。默认情况下,框架假定所有文件路径都是相对于web项目位置的。但是,我希望从Web.config中的自定义设置(例如"C:\MyStaticFiles\")加载实际的根目录。
有没有办法改变StaticFileHandler认为的服务器根目录?如果没有,有没有一种简单的方法来实现IHttpHandler来完成这个更改,并将其余的工作交给常规的StaticFileHandler
发布于 2011-11-02 22:50:17
出于性能原因,最好使用URL重写,而不是搞乱HttpHandler。StaticFileHandler的速度没有IIS快。您自己的处理程序将比StaticFileHandler慢10倍,除非您是一个非常非常优秀的工程师,否则它可能会泄漏(或不正确地占用)内存。
您可以在HttpModule或HttpApplication的BeginRequest事件(如果使用URL授权,则为PostAuthorizeEvent )中调用context.RewritePath,以对选定的文件类型进行重写。
发布于 2011-11-02 22:44:51
我认为,从性能方面考虑,为静态资源创建不同的路径映射并不是一个好主意。如果它们位于网站文件夹中,则可以由IIS直接提供,而无需任何ASP.NET处理。
https://stackoverflow.com/questions/7982091
复制相似问题