IIS 5上のASP.NET 2.0アプリケーションでエラーが発生しました(aspnet_wp.exe(PID:XXXX)が予期せず停止しました。)

StackOverflow https://stackoverflow.com/questions/233478

質問

Windows 2000サーバー(IIS 5)でASP.NET 2.0 Webアプリケーションをホストした後。 Webサイトを閲覧できませんでした。

次のエラーメッセージがブラウザに表示され、3つのイベントログエントリが追加されました...

ブラウザのエラーメッセージ

  

サーバーアプリケーションは使用できませんこのWebサーバーでアクセスしようとしているWebアプリケーションは現在使用できません。 [更新]をクリックしてくださいWebブラウザのボタンをクリックして、リクエストを再試行します。

イベントログエントリ

  

イベントタイプ:エラー
  イベントソース:ASP.NET 2.0.50727.0
  イベントカテゴリ:なし
  イベントID:1000
  日付:2008年10月24日
  時間:午後3:45:26
  ユーザー:なし
  コンピューター:XXXXX
  説明:aspnet_wp.exe(PID:XXXX)が突然停止しました。

     

イベントタイプ:エラー
  イベントソース:ASP.NET 2.0.50727.0
  イベントカテゴリ:なし
  イベントID:1088
  日付:2008年10月24日
  時間:午後3:45:26
  ユーザー:なし
  コンピューター:XXXXX
  説明:App-Domainを作成できなかったため、リクエストの実行に失敗しました。エラー:0x80070005アクセスが拒否されました。

     

イベントタイプ:警告
  イベントソース:ASP.NET 2.0.50727.0
  イベントカテゴリ:なし
  イベントID:1073
  日付:2008年10月24日
  時間:午後3:45:26
  ユーザー:なし
  コンピューター:WEBDEV
  説明:AppDomain:/ LM / W3SVC / 1 / Root / WebApplicationName
の初期化に失敗しました   例外:System.IO.FileLoadException
  メッセージ:ファイルまたはアセンブリ「System.Web、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」またはその依存関係の1つをロードできませんでした。アクセスが拒否されました。   StackTrace:System.Reflection.Assembly.nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、Assembly locationHint、StackCrawlMark& stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection)
     System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef、Evidence assemblySecurity、StackCrawlMark& stackMark、Boolean forIntrospection)で
     System.Reflection.Assembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark& stackMark、Boolean forIntrospection)
で      System.Activator.CreateInstance(String assemblyName、String typeName、Boolean ignoreCase、BindingFlags bindingAttr、Binderバインダー、Object [] args、CultureInfo culture、Object [] activationAttributes、Evidence securityInfo、StackCrawlMark& stackMark)
     System.Activator.CreateInstance(String assemblyName、String typeName)
で      System.AppDomain.CreateInstance(String assemblyName、String typeName)
     System.AppDomain.CreateInstance(String assemblyName、String typeName)
     System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId、IApplicationHost appHost、HostingEnvironmentParameters hostingParameters)
     System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId、IApplicationHost appHost、HostingEnvironmentParameters hostingParameters)で

任意のアイデア...

**編集**

そしてSystem.WebアセンブリにアクセスするためにSystem.IO.FileLoadExceptionがスローされるのはなぜですか?

役に立ちましたか?

解決

Webサイトフォルダーがサーバーにコピーされたとき、管理者、管理者、および&の権限のみを持つ親フォルダーのセキュリティ権限を継承することを発見しました。システムアカウント。

追加しました

  • IUSER_MACHINENAME(インターネットゲストアカウント)
  • ASPNET(ASP.NETマシンアカウント)

読み取り&実行フォルダの内容を一覧表示、および読み取りの権限。

問題が解決したにもかかわらず、まだいくつかの質問があります

3番目のイベントログエントリから、ApplicationManagerがSystem.WebアセンブリにあるHostingEnvironmentの作成に失敗したことが明らかです。

FileLoadExceptionはSystem.Webに対してスローされるため、ASP.NETワーカープロセスはGACフォルダーにアクセスできないようです。

System.WebにアクセスするためにFileLoadExceptionがスローされるのはなぜですか?

他のヒント

その外観から、ASP.NETインストールに設定された不正な許可があります。通常、ASP.NET部分をアンインストールして再インストールするのが最善の策です。これは次の方法で簡単に行えます。

  1. C:\ windows \ microsoft.net \ framework \ v2.0.50727のコマンドプロンプトを開きます
  2. 次のコマンドを実行します。aspnet_regiis.exe-u
  3. 次のコマンドを実行します。aspnet_regiis.exe-i

ASP.NETをアンインストールして再インストールすると、アカウントの適切なアクセス許可が確立されます。

このエラーは、IISをクラッシュさせるか、強制的にシャットダウンするコードが例外をスローしたことを意味します。これを引き起こす一般的な例外は、OutOfMemoryExceptionとStackOverflowExceptionです。

FileLoadExceptionが発生していますが、実際には根本的な原因であるOutOfMemoryExceptionまたは類似のものがある可能性があります。何をロードしようとしているか、そしてその中にあるコードを知らないと、実際に問題を引き起こしているものを知ることは不可能です。

しかし、ロードアセンブリの問題を除外するために私が最初に行うことは、テストハーネスでそれを反映し、同じ問題が発生するかどうかを確認することです。その場合、問題はIISでなく、ロードしようとしているDLLにあります。

同じ問題が発生し、aspnet_regiisで-uおよび-iを使用して消えることはなく、他の多くのユーザーがこちら。 しかし、“%windir%\ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files”を削除した後フォルダーを作成し、web.configのID偽装セクションからユーザーにこのフォルダーに読み取り/書き込み権限を付与すると、問題はなくなりました。ローカルASPNETユーザーにそれらの権利を与えるだけでは不十分でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top