5

ユーザーの 1 人が、Web アプリケーションでエラーを受け取りました。この問題を再現することはできず、ネットワークに関連していると思われました。オフィスと自宅でノートを使ってアプリケーションを試してもらい、オフィスでのみ問題が発生することを確認しました。

サーバーにログインして、オフィスで試した直後にイベント ビューアーを見たところ、次の警告がログに記録されていました。

これを追跡し始める方法さえ途方に暮れています。助言がありますか?

以下のイベント ビューアー ログ:

イベント コード: 3005 イベント メッセージ: 未処理の例外が発生しました。イベント時刻: 2012/6/20 18:32:45 イベント時刻 (UTC): 2012/6/20 10:32:45 PM イベント ID: ebf8f628a9b3457cbea117c8c2da2186 イベント シーケンス: 2970 イベント発生: 26 イベント詳細コード: 0 アプリケーション情報:

Application domain: /LM/W3SVC/50/ROOT-1-129847041933281152 
Trust level: Full 
Application Virtual Path: / 
Application Path: c:\websites\foobar.acme.com\ 
Machine name: MyServer    Process information: 
Process ID: 15152 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE    Exception information: 
Exception type: HttpException 
Exception message: Server cannot set content type after HTTP headers have been sent.    Request information: 
Request URL: http://foobar.acme.com/Project/Evaluate/ResultsXML.aspx?step=89&uid=4397&rnd=hhf8oe

Request path: /Project/Evaluate/ResultsXML.aspx 
User host address: 192.168.102.1 
User:  
Is authenticated: False 
Authentication Type:  
Thread account name: NT AUTHORITY\NETWORK SERVICE    Thread information: 
Thread ID: 12 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Is impersonating: False 
Stack trace:    at System.Web.HttpResponse.set_ContentType(String value)    at System.Web.UI.Page.SetIntrinsics(HttpContext context,
Boolean allowAsync)    at
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)   
at System.Web.UI.Page.ProcessRequest(HttpContext context)    at
ASP.error_aspx.ProcessRequest(HttpContext context)    at
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler,
TextWriter writer, Boolean preserveForm, Boolean setPreviousPage,
VirtualPath path, VirtualPath filePath, String physPath, Exception
error, String queryStringOverride)
Custom event details:
4

2 に答える 2

0

最初の回答を書いたときに質問を完全に誤解した場合に備えて、2 番目の回答を追加します。この回答では、サーバーが 1 つだけあり、これはブラウザー/ユーザー固有の問題であると想定しています。

  1. 投稿したエラーが危険なものではないことを確認します。イベント ログで他の発生状況を確認し、ユーザーがエラーに遭遇したときにのみ発生することを確認してください。

  2. エラーに関連する動作を説明してください (例: ブラウザには何が表示されますか? 500 エラー? 何らかのシステム エラー メッセージ? ネットワークの切断?)

  3. ブラウザーからのトラフィックを調べます (たとえば、IIS ログを調べます)。サーバーは、ユーザーがトラフィックにどのように表示されるか以外は、ユーザーについて何も気にしません。特に、ブラウザー固有の可能性があり、サーバーで別のロジック パスをトリガーしている可能性がある Accept ヘッダーの違いに注意してください。これは、コンテンツ タイプをユーザーのブラウザーが受け入れるものに設定しようとするものです。

今のところ、答えに対する私のワイルドな推測は次のとおりです。

ResultsXml.aspx の目的は、何らかのドキュメントを返すことです。そのドキュメントには外部アプリ (PDF や XML ビューアーなど) が必要です。インラインの content-disposition でそれを返します。また、オフィス コンピューターのローカル セキュリティ ポリシーはキャッシュを無効にします。この場合、キャッシュが存在しないため、サード パーティのビューアー アプリはファイルを見つけることができません。

私が間違っている場合は、上記を投稿してください。推測を続けます:)

于 2013-09-24T00:41:01.260 に答える