3

IIS6.0 で実行されている ASP.NET リポジトリ サイトがあり、再現できない問題がありますが、3 人のユーザーが毎回この問題を抱えています (他の 20 人までのユーザーは正常に動作しています)。IIS 認証の設定に関係があることは確かですが、コーディングの間違いを除外したわけではありません。

ユーザーは、エラーが発生した 3 人の共通の要因は、サイトに 60 を超えるドキュメントをアップロードしたことだと言っています。すべてのユーザーは別の州にいるので、私は彼らが撮ったスクリーンショットとデバッグするサーバー イベント ログしか持っていません。

ViewPage.aspx ページ (サイトの他のページではなく) に移動しようとすると、ユーザー資格情報の入力を求められます。ログオンしようとすると、ログオン プロンプトが再び表示されます。ログオンを 3 回試行すると、次のエラー メッセージが表示されます。

HTTP エラー 401.1 - 権限がありません: 資格情報が無効なため、アクセスが拒否されました。

システム イベント ビューアには次の警告があります (いずれか 10 個以上)。

EventID:1011
ソース: W3SVC
説明:
アプリケーション プール 'SDAAppPool' を提供しているプロセスで、World Wide Web Publishing Service との致命的な通信エラーが発生しました。プロセス ID は「3264」でした。データ フィールドにはエラー番号が含まれます。

EventID:1009
ソース: W3SVC
説明:
アプリケーション プール 'SDAAppPool' を提供しているプロセスが予期せず終了しました。プロセス ID は「2088」でした。プロセスの終了コードは「0x800703e9」でした。

セキュリティ イベント ビューアには、次の障害監査がいくつかあります。

イベント ID: 560
ソース: セキュリティ
カテゴリ: オブジェクト アクセス
説明:
オブジェクトを開く:
オブジェクト サーバー: SC マネージャー
オブジェクトの種類: サービス オブジェクト
オブジェクト名: WinHttpAutoProxySvc
ハンドル ID: -
操作 ID: {0,557880730}
プロセス ID: 444
イメージ ファイル名: C :\WINDOWS\system32\services.exe
プライマリ ユーザー名: EBTOPVNET01$
プライマリ ドメイン: EBSS
プライマリ ログオン ID: (0x0,0x3E7)
クライアント ユーザー名: NETWORK SERVICE
クライアント ドメイン: NT AUTHORITY
クライアント ログオン ID: (0x0,0x3E4)
アクセス:サービスの状態を問い合わせる サービス
を開始する
サービスから情報をクエリ
権限: -
制限付き Sid カウント: 0
アクセス マスク: 0x94

アプリケーション イベント ビューアには次のエラーがあります。

EventID: 5000
ソース: .NET ランタイム 2.0 エラー
ユーザー: 該当なし
説明:
EventType clr20r3、P1 w3wp.exe、P2 6.0.3790.3959、P3 45d691cc、P4 system.data、P5 2.0.0.0、P6 4889ece0、P7 1849、P8 0、P9 system.stackoverflowexception、P10 NIL。

私の web.config には、次の認証/承認コードがあります。

<authentication mode="Windows"/>
<authorization>
    <deny users="?"/>
</authorization>

ViewPage.aspx ページで次のユーザー チェックを使用します。

UsersService us = new UsersService();
TList<Users> currUser = us.Find("Ntid = '" + User.Identity.Name + "'");
int userID = 0;
if (currUser.Count != 0 )
{
    userID = currUser[0];
}

そのユーザー ID を使用して、アクセスの確認などを行います。userID == 0 の場合、読み取りアクセスのみが取得されます (User.Identity.Name が空を返した場合、401 エラーの代わりにユーザーに読み取りアクセスが付与されると思います)。別のページで同じユーザーチェックを行いましたが、ユーザーは問題なくアクセスできました。

さまざまなサブ問題を数日間グーグルで検索した結果、これらすべての事実が関連しているかどうかはわかりませんが、考えられるすべてを含めました. 私が見逃した関連するものがあれば、私に知らせてください。どこで調査を開始するか、またはデバッグできるようにローカルホストでこれを再現できる方法についてのアイデアをいただければ幸いです。ありがとう。

4

1 に答える 1

1

プロセスの終了コードから、ある種の再帰が行われており、巻き戻されていないように見えます。このような問題をデバッグする方法を説明している素晴らしいTess Ferrandezによる素晴らしい記事があります。

.NET クラッシュ: グローバル例外ハンドラーを作成しない方法

于 2010-10-14T23:09:45.167 に答える