私は N2Cms を使用しており、いくつかの問題を調べています。左側にナビゲーション パネルがあり、ツリーを展開すると ajax を介して読み込まれます。
ノードの子を取得するコードは、いくつかのパラメーターを使用して ashx ファイルを呼び出します。1 つのパラメーターはパス用で、その中にスラッシュが含まれています。このため、暗号化されています。
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f
私の開発サーバー (iis 7.5 を実行) では問題はありませんでしたが、テスト サーバー (iis7) にデプロイすると、ナビゲーションが機能しません。
これを調査すると、上記の URL で 500 エラーが発生することがわかりました。
URLをデコードすると
.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/
問題なく動作します。
残念ながら、これを生成するコードを n2cms ソース コードの一部として変更することはできません。これは、正当な理由でエンコードされていると想定しています。
web.configでエンコードされたパラメーターを許可するか、iisサーバーで変更できることを知っている人はいますか?
編集: したがって、このリンクは、セキュリティ対策として意図的にこれを行っていることを示唆しているようです。 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>
残念ながら、これは効果がないようです。
これがうまくいかない理由はありますか?