2011-09-07 71 views
1

我建立一個網站使用的NuGet包(我自己編譯直接從GitHub)N2上失敗。構成/ N2文件夾中管理界面的文件全部編譯到N2.zip中,並且有一個虛擬路徑提供程序被配置爲從zip文件中提供/ N2文件夾中的任何內容。N2CMS虛擬路徑提供Web服務器

在我的機器,它完美的作品。當我將它部署到Web服務器(運行IIS 6或IIS 7.5)時,對/ N2文件夾中的文件的請求將返回404.有一個奇怪的例外:具有查詢字符串值的請求將被提供。例如,/N2/Login.aspx?ReturnUrl=%2fn2的作品,但/N2/Resources/Css/All.css沒有。 (我使用Fiddler 2來監視請求。)

這是一個MVC站點,運行在.Net 4.0下,並未預編譯。

我打開ASP.Net在web.config中跟蹤,並從我可以看到,VPP被執行,因爲它寫的跡線開始ZipVPP:

ZipVPP: False ~/default.cshtml  
ZipVPP: False ~/default.vbhtml 4.79004203405183E-05 0.000048 
ZipVPP: False ~/index.cshtml 9.07992130999052E-05 0.000043 
ZipVPP: False ~/index.vbhtml 0.000125475536747951 0.000035 
ZipVPP: False /Views/Home/Index.aspx 0.000476485344693378 0.000351 
ZipVPP: False /Views/Home/Index.ascx 0.000554325119945653 0.000078 
ZipVPP: False /Views/Shared/Index.aspx 0.000631632393110378 0.000077 
ZipVPP: False /Views/Shared/Index.ascx 0.000704500969472239 0.000073 
ZipVPP: False ~/Views/Home/_ViewStart.cshtml 0.000794229163423298 0.000090 
ZipVPP: False ~/Views/Home/_ViewStart.vbhtml 0.000833389826910285 0.000039 
ZipVPP: True ~/Views/_ViewStart.cshtml 0.000872745800133037 0.000039 
ZipVPP: False ~/_ViewStart.cshtml 0.000935947959862434 0.000063 
ZipVPP: False ~/_ViewStart.vbhtml 0.000972131211344948 0.000036 
ZipVPP: True ~/Views/Shared/_Layout.cshtml 0.00102791407786914 0.000056 
ZipVPP: False /Views/Home/LayoutPartials/Rotator.aspx 0.00113080303437734 0.000103 

這表明它可能是一個錯誤在VPP中,但我不確定。

+0

這裏討論的這個問題http://n2cms.codeplex.com/discussions/271807 –

+2

是的。由我。 :-) –

回答

0

修正是爲通配符路由配置IIS 6,以便所有請求(包括圖像,css,腳本等)都通過ASP.Net。這給了虛擬路徑提供者一個機會。如果沒有通配符的路由,IIS將查看文件擴展名,而像.jpg.css一個典型的靜態文件類型,只是看在文件系統中的文件。由於文件不存在,它將返回一個404.

要配置此功能,請參閱N2CMS virtual path provider fails on web server。將路徑調整爲aspnet_isapi.dll以對應您需要的.Net版本,並取消選中「檢查該文件是否存在」。