我使用N2Cms,並正在尋找我有它的一些問題。它在左側有一個導航面板,當您展開樹時通過ajax加載。500內部服務器錯誤IIS7編碼的網址
獲取節點childeren的代碼調用帶有一些參數的ashx文件。一個參數是一個路徑,並在其中包含斜槓。出於這個原因,它已被編碼。
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f
我有我的開發服務器上與此沒有任何問題(運行IIS 7.5),但在部署到我們的測試服務器(IIS7)導航無法工作。
調查顯示上面的url給出了500錯誤。
如果我的網址進行解碼,以
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/
它的工作原理,沒有任何問題。
不幸的是,我不能改變生成這個作爲其n2cms源代碼的一部分的代碼,我假設它已被編碼的一個很好的理由。
有誰知道我可以在我的web.config中做任何事情來允許編碼參數或我可以在iis服務器上更改的東西?
編輯: 所以這個鏈接似乎表明,它的目的是作爲一個安全mesures。 http://msdn.microsoft.com/en-us/library/ee656542.aspx
建議的解決方案是升級到.NET 4.0,並添加以下到Web.config
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
不幸的是,這似乎沒有任何效果。
任何想法,爲什麼這不工作?
URLScan似乎是一個iis插件。我不認爲我們已經安裝了它。我不能在添加刪除程序或窗口功能罰款。 – sianabanana
在這裏檢查C:\ Windows \ System32 \ inetsrv \ urlscan或在這裏C:\ Windows \ SysWOW64 \ inetsrv \ urlscan。位置取決於您是否正在運行64位。如果urlscan存在於其中一個位置並且存在「logs」子目錄,那麼您正在運行它。 –
正如我所說,它沒有安裝。這些文件夾不存在,也不在機器上的任何文件或文件夾中對urlscan進行任何引用。 – sianabanana