2012-10-10 26 views
7

私はN2Cmsを使用しており、私はそれを持っているいくつかの問題を見ています。左にナビゲーションパネルがあり、ツリーを展開するときにajax経由で読み込みます。500内部サーバーエラーIIS7エンコードされたURL

ノードの子ノードを取得するコードは、いくつかのパラメータでashxファイルを呼び出します。 1つのパラメータはパスのためのもので、スラッシュを含みます。このため、コード化されています。

.../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/ 

へのURLをデコードした場合、それは問題なく動作します。

残念ながら、これを生成するコードをn2cmsソースコードの一部として変更することはできません。正当な理由でコード化されていると仮定しています。

誰かが私のweb.configでエンコードされたパラメータを許可するか、iisサーバーで変更できるものを知っていますか?

編集: このリンクはセキュリティメッシュとしてこれを行うことを示唆しているようです。 http://msdn.microsoft.com/en-us/library/ee656542.aspx

提案された解決策は、4.0を.NETとweb.configファイルに

<configuration> 
<uri> 
    <schemeSettings> 
    <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/> 
    </schemeSettings> 
</uri> 
</configuration> 

を以下を追加するアップグレードすることです残念ながら、これは効果がないようです。

これはなぜ機能しませんか?

答えて

1

これはURLScanユーティリティである可能性があります。 URLスキャンは、設定ファイル内のルールに基づいてURLをブロックします。また、独自のログファイルを持っているので、URLScanログを確認することで確実にわかります。

URLSCanのデフォルトの場所をGoogle検索します。

+0

URLScanはiis addonのようです。私はそれがインストールされているとは思わない。私はプログラムやWindowsの機能を削除して追加することはできません。 – sianabanana

+0

C:\ Windows \ System32 \ inetsrv \ urlscanまたはここでC:\ Windows \ SysWOW64 \ inetsrv \ urlscanを確認してください。場所は、64ビットを実行しているかどうかによって異なります。これらの場所のいずれかにurlscanが存在し、 "logs"サブディレクトリがある場合は、それを実行しています。 –

+0

私が言ったように、それはインストールされていません。これらのフォルダは存在せず、マシン上のファイルやフォルダ内のurlscanへの参照もありません。 – sianabanana

1

あなたのURLは2 htmlエンコードを通過するようです。 IIS7サーバー上にいくつかのURL書き換えモジュールがアクティブになっていますか?

+0

私は認識していません。これは、標準のWindows Webサーバー2008インストール(iis7)です。私はこれがiis7の "機能"だと思うが、iis7.5上に同じコードを持つsimmilar標準インストールはこの "機能"を持っていない。 – sianabanana

0

OK、これでどこかになりました。

IISログのエラーを見つけようとして、失敗したトレース要求についての多くの投稿を見ても、iisでエラーが発生していない場合、リクエストはIISに届かなかったと思います。

サーバーのエラーを振り返ってみると、ヒントもありました。
500内部サーバーエラー。リクエストはHTTPフィルタによって拒否されました。

ファイアウォールです! HTTPフィルタが無効になっていますが、今のところ動作します:)

このHTTPフィルタが私たちを守っていると考えられていたので、これを無効にしました。