我搜索了一個較低的值,仍然找不到明確的答案。通過ASP.NET運行時將IIS7配置爲服務器靜態內容
如何配置IIS 7.0或者IIS中,使ASP.NET運行時將處理所有請求的Web應用程序 - 包括那些靜態文件,如*.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;
}
的基本思想是:我們有我們的web應用,又包含文件夾,每個「品牌裏面branding
文件夾「,」品牌「等於主機名。也就是說,http://foo.example.com/
的請求應使用branding/foo_example_com
的靜態文件,而http://bar.example.com/
應使用來自branding/bar_example_com
的內容。
現在我想要IIS做的是將所有請求轉發到靜態文件到StaticFileHandler
,然後這將使用這整個「基礎設施」,並提供正確的文件。但是,盡我所能,我無法配置IIS來執行此操作。
你問如何強制所有請求由ASP.NET請求處理程序處理,而不是IIS的這些類型的默認處理程序?或者,如果您的IIS沒有響應非ASPNET文件的請求?你的問題有點不清楚。 – SqlRyan 2010-04-07 16:02:25
@rwmnau謝謝!現在更清楚了嗎? – 2010-04-07 16:09:32
它的確如此 - 感謝編輯。 – SqlRyan 2010-04-07 16:11:14