通过ASP.NET运行时将IIS7配置为服务器静态内容
我搜索得很高,仍然无法找到明确的答案.
如何在IIS中配置IIS 7.0或Web应用程序,以便ASP.NET运行时将处理所有请求 – 包括* .js,* .gif等静态文件? 我想要做的是如下. 我们有一种SaaSy网站,我们可以为每个客户“品牌化”. “品牌”意味着开发自定义母版页并使用一堆* .css和其他图像. 很自然,我正在使用VirtualPathProvider,它的运行方式如下: public override System.Web.Hosting.VirtualFile GetFile(string virtualPath) { if(PhysicalFileExists(virtualPath)) { var virtualFile = base.GetFile(virtualPath); return virtualFile; } if(VirtualFileExists(virtualPath)) { var brandedVirtualPath = GetBrandedVirtualPath(virtualPath); var absolutePath = HttpContext.Current.Server.MapPath(brandedVirtualPath); Trace.WriteLine(string.Format("Serving '{0}' from '{1}'",brandedVirtualPath,absolutePath),"BrandingAwareVirtualPathProvider"); var virtualFile = new VirtualFile(brandedVirtualPath,absolutePath); return virtualFile; } return null; } 基本思路如下:我们在webapp中有一个品牌文件夹,其中包含每个“品牌”的文件夹,其中“品牌”等于主机名.也就是说,对http://foo.example.com/的请求应使用来自branding / foo_example_com的静态文件,而http://bar.example.com/应使用来自branding / bar_example_com的内容. 现在我想要IIS做的是将所有对静态文件的请求转发给StaticFileHandler,然后StaticFileHandler将使用整个“基础架构”并提供正确的文件.但是,尽我所能,我无法配置IIS来执行此操作. 解决方法
如果应用程序池的Managed Pipeline Mode设置为Integrated(默认值),则II7已经这样做了.在集成模式下,ASP.NET处理所有请求,包括静态对象的请求.
如果必须以经典模式保留应用程序池,则需要使用在IIS 6中使用的相同技术来显式创建各种静态扩展的处理程序. 基于评论的附加信息:我认为您缺少的部分是创建一个HttpHandler来处理其他扩展(.js,.css等).如果没有这个,那么ASP.NET将使用这些类型文件的默认处理.您将在web.config中创建对处理程序的引用. This article是为静态文件创建HttpHandler的示例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 为什么IIS Express使用而不是?
- ASP.NET MVC和Web Forms在同一个Web应用程序中?
- asp.net-mvc – 带有ioc的asp.net mvc – >使用BaseControl
- 什么是使用aspnet_compiler.exe预编译ASP.NET项目的优势?
- 基于asp.net下使用jquery实现ajax的解决方法
- openxml – 在Asp.net核心1.0中使用Microsoft.Office.Inter
- 如何不缓存ASP.NET用户控件?
- asp.net – jquery getJson没有将任何值传递给控制器
- 将我的ASP.NET MVC页面保存为pdf
- 在ASP.NET或ASP.NET MVC中生成管理界面
- C#进阶系列——WebApi 接口参数不再困惑:传参详
- 由for V.S. for each想到的
- asp.net – 如何使用会员资格提供者与EF代码优先
- asp.net – 无法加载文件或程序集“Microsoft.Te
- asp.net – Visual studio – 在浏览器中查看时使
- asp.net – 按钮属性: – commandName和Command
- asp.net – 在SQL SERVER 2005上启用CLR是否存在
- asp.net-mvc – 使用actionlink将文本框的值从视
- 1:ASP.NET Core MVC 2.x 全面教程
- asp.net-mvc – ASP.NET MVC3,Html.TextAreaFor没