2011-06-21 21 views
0

私は以下のパスに私のWebアプリケーションのメニュー項目の一点フルパスは260文字未満である必要がありますか?

http://localhost/Reports/Pages/Folder.aspx?ItemPath=/Parent Reports/Child Reports 

私はそれにUIが以下のメッセージを表示するレポートマネージャ]をクリックすると:

項目 "のパスhttp://localhost/Reports/Pages/Folder.aspx?ItemPath =/Parent Reports/Child Reports 'は無効です。フルパスは260文字未満でなければなりません。その他の制限が適用されます。レポートサーバーがネイティブモードの場合、パスはスラッシュで始まる必要があります。

Pls。提案する。ありがとう。

+0

twitter? :) Windows CマクロMAX_PATHのように聞こえます。 – kenny

+0

空のスペースを処理するためにURLのエンコーディングを行う必要があるかもしれません。 –

+0

@ AD.Ne:既にそれをしています。 – stackoverflowuser

答えて

0

Windowsには260パス制限があります(またはNTFSですか)。おそらく、ソリューションフォルダと子フォルダへのパスと、その要求を処理するaspxページのファイル名が260文字を超えています。このような場合は、ソリューションフォルダをc:¥rootに近づけて再試行してください。

+2

これは間違いなく** NTFSではありません。実際、Windowsカーネルは 'USHORT_MAX'文字までのパスをサポートしています。そのshlwapi.dllは誰ですか? – Mehrdad

0

Windowsは、従来のMS-DOS 260 charパス制限の解決策を実装しています。これは、長いUNCパス形式で、\\?\\\?\c:\path\file.txtなど)で始まります。

このエラーが発生したWebサービスのソースコードにアクセスできる場合は、URL引数をローカルファイルパスに変換するサービスコードを掘り下げて、前面の\?\をタックすると全く問題ありません。

URLにこのファイルパスのエラーメッセージが表示されることも奇妙に思えます。あなたのコード(またはWebサービスのコード)をチェックして、誰かがURI関数を使用する必要のあるPath関数を使用しているかどうかを確認します。

最後に、パスとURIの両方にスペース文字が含まれていることに注意してください。スペース文字はURIでは禁止されています。 URIを有効なURIにするには、%20でエスケープする必要があります。それは問題の本当の原因かもしれません。URI解析は最初のスペース文字で止まるので、Webサービスは実際にあなたが送信しているURI全体を受け取っていません。

関連する問題