1

SP2010でWebアプリを開発しました。顧客 (海兵隊) が環境内で .NET 開発を許可したくないため、アプリ全体は SPServices を使用して JavaScript で実行されます。顧客は、すべてのレポートを Excel スプレッドシートでダウンロードできるようにしたいと考えていました。JavaScript で Excel スプレッドシートを生成することは不可能であるため、私が思いついた回避策は、JavaScript で CSV を生成し、それをドキュメント ライブラリに保存してから、ブラウザで CSV ファイルを指定してダウンロードすることでした。これは完璧に機能しました。技術的には Excel ではありませんでしたが、顧客はそれ以上のことを知りませんでした。Excel でレポートを開きます。しかし先日、顧客はエクスポートが機能しなくなったと言いました。何が悪いのかを確認するのに約1日半を費やしました。解決策を見つけてください。これが私が気づいたことです:

  • 「.csv」拡張子はブラウザによって「_csv」に変更されています
  • ダウンロード ダイアログで [保存] をクリックすると、ブラウザに「[ファイル名]_csv をダウンロードできませんでした [再試行] [キャンセル]」というメッセージが表示されます。
  • プロトコル アナライザーを使用して SP サーバーからの応答ヘッダーを確認すると、SP サーバーはブラウザーにコンテンツ処理で正しいファイル名を与えています。
  • この問題は IE のすべてのバージョンに存在しますが、FF では問題なく動作します。Chrome/Safari のテストは行われていません

SP2010 サーバーからの HTTP 応答ヘッダーは次のとおりです。

HTTP/1.1 200 OK
Cache-Control   private,max-age=0
Content-Length  27739
Content-Type    application/octet-stream
Expires Sun, 28 Jul 2013 13:42:43 GMT
Last-Modified   Mon, 12 Aug 2013 13:42:43 GMT
ETag    "{AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2},20"
Server  Microsoft-IIS/7.5
SPRequestGuid   903d68dc-6f49-4fd8-acbc-2b22c4ee28ef
Set-Cookie  WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-SharePointHealthScore 0
ResourceTag rt:AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2@00000000020
X-Content-Type-Options  nosniff
Content-Disposition attachment; filename=test.csv
X-Download-Options  noopen
Public-Extension    http://schemas.microsoft.com/repl-2
Set-Cookie  WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-Powered-By    ASP.NET
MicrosoftSharePointTeamServices 14.0.0.6029
Date    Mon, 12 Aug 2013 13:42:42 GMT

IE が影響を受ける唯一のブラウザーであるように思われるため、サーバーの応答に問題があるかどうかはわかりません。しかし、繰り返しになりますが、私は LAMP 開発のバックグラウンドを持っているため、これらのヘッダーのいくつかは私にとってなじみのないものです。私は、インターネットの世界にいる誰かが、ここで何が起こっているのかについて何らかの考えを持っているか、何が変わったのか (どうやら一晩で)、または何が問題なのかについて少しでも手がかりを与えてくれる何かを持っていることを望んでいました.

セキュリティのために URL とファイル名、およびファイルの内容を削除した完全なフィドラー キャプチャを次に示します。海兵隊のアプリケーションとデータであるため、これらのアイテムを削除する必要がありました

GET http://removed_for_security/Reports/filename.csv HTTP/1.1
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MDDC; InfoPath    .3)
Accept-Encoding: gzip, deflate
Host: sp2010dev
DNT: 1
Connection: Keep-Alive
Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}


HTTP/1.1 200 OK
Cache-Control: private,max-age=0
Content-Length: 27739
Content-Type: application/octet-stream
Expires: Sun, 28 Jul 2013 19:48:33 GMT
Last-Modified: Mon, 12 Aug 2013 19:48:33 GMT
ETag: "{AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2},30"
Server: Microsoft-IIS/7.5
SPRequestGuid: a39fa60c-5b8c-4b8c-bb8c-bc1f72ab0351
Set-Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-SharePointHealthScore: 0
ResourceTag: rt:AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2@00000000030
X-Content-Type-Options: nosniff
Content-Disposition: attachment; filename=filename.csv
X-Download-Options: noopen
Public-Extension: http://schemas.microsoft.com/repl-2
Set-Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.6029
Date: Mon, 12 Aug 2013 19:48:32 GMT

file_contents

前もって感謝します。

4

2 に答える 2

0

どうやら IE のセキュリティ (驚き) に問題があり、ダウンロードが妨げられているようです。Internet Options > Security > Local Intranet > Sites > AdvancedSP サイトをホストするドメインにアクセスして追加することで、この問題を回避しました。そして、「.csv」を「_csv」に変更する IE の問題を修正するために、IIS マネージャーでその拡張子の MIME タイプを変更しました。これで、すべてが正常に機能します

于 2013-08-28T13:01:44.550 に答える