2014-04-15 68 views
1

我的ASP.NET包含一個指向靜態圖像的IIS虛擬文件夾(以便提供這些圖像的HTTP請求甚至不會觸摸我的應用程序)。什麼是將ImageResizer添加到IIS虛擬文件夾的正確方法

Web客戶端消耗我的網站在http://<server>/myAppRoot

Page1.aspx 
Page2.aspx 
images/MyAppLogo.png 
static/file1.png <-- IIS virtual folder "static" points to D:\someOtherPath 
static/file2.png 

在在C服務器的文件系統:\ somePath \ myAppRoot:

Global.asax 
Page1.aspx 
Page2.aspx 
Web.config 
bin\MyAppAssembly.dll 
bin\ImageResizer.dll 
images\MyAppLogo.png 

和服務器上的其他地方的所有靜態圖像在D:\ someOtherPath:

file1.png 
file2.png 

我可以將ImageResizer添加到ASP.NET bin文件夾,沿着我自己的程序集,並將<resizer>標記添加到Web.config,ImageResizer將運行並處理來自我的實際應用程序文件夾的任何請求。我可以使用所有ImageResizer特技來製作MyAppLogo.png舞蹈。

但ImageResizer無法識別/static/虛擬文件夾(這是包含大量上傳圖片的文件夾,我希望縮略圖可用於動態顯示)的任何請求。

如何配置ImageResizer以處理/static/虛擬文件夾?

我應該補充一點,我們的安裝程序添加了/static/,完全在我們的應用程序之外,而且在我的應用程序的Web.config中不是<location>標記。

有關如何配置ImageResizer以處理/static/ IIS虛擬文件夾的任何建議?

回答

0

我理解它的方式,ImageResizer 應該與IIS虛擬路徑提供程序一起工作。

但是,有VirtualFolder插件,它是免費提供的。請參閱http://imageresizing.net/plugins/virtualfolder。注意警告:

但是,IIS虛擬文件夾執行得更好,所以此插件只能用於測試,開發或作爲最後的手段。

我對插件沒有個人經驗,但配置看起來很簡單;你只需要對物理路徑的虛擬路徑映射是這樣的:

<add name="VirtualFolder" virtualPath="~/static/" physicalPath="D:\someOtherPath" vpp="false "/> 
+0

不,這不是它。我不能使用'VirtualFolder'插件,因爲它不適用於生產部署。 –

0

好了,直接測試訪問嘗試到myAppRoot/static/*路徑在Web服務器上透露更詳細的IIS錯誤(403.1禁止訪問)。

當需要「腳本」訪問時,/static/文件夾先前已配置爲「讀取」訪問。

解決方案:

修改的<system.webServer><handlers>D:\someOtherPath\Web.config<handlers accessPolicy="Script" />

相關問題