3

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

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

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

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

イベントログエントリ

イベントタイプ:エラー
イベントソース:ASP.NET 2.0.50727.0
イベントカテゴリ:なし
イベントID:1000
日付:
10/24/2008時間:3:45:26 PM
ユーザー:N / A
コンピューター:XXXXX
説明:aspnet_wp.exe( PID:XXXX)が予期せず停止しました。

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

イベントタイプ:警告
イベントソース:ASP.NET 2.0.50727.0
イベントカテゴリ:なし
イベントID:1073
日付:
10/24/2008時間:3:45:26 PM
ユーザー:N / A
コンピューター:WEBDEV
説明:初期化に失敗しましたAppDomain:/ LM / W3SVC / 1 / Root / WebApplicationName
例外:System.IO.FileLoadException
メッセージ:ファイルまたはアセンブリを読み込めませんでした'System.Web、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b03f5f7f11d50a3a'またはそのいずれか依存関係。アクセスが拒否されました。StackTrace:at System.Reflection.Assembly.nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、Assembly locationHint、StackCrawlMark&stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection)
System.Reflection.Assembly.InternalLoad
(String assemblyString、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection)
at System.Activator.CreateInstance(String ) System .
_
.CreateInstance(String assemblyName、String typeName)
System.AppDomain.CreateInstance(String assemblyName、String typeName)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId、IApplicationHost appHost、HostingEnvironmentParameters hostingParameters)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId、IApplicationHost appHost HostingEnvironmentParameters hostingParameters)

何か案は...

** 編集 **

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

4

4 に答える 4

3

Web サイト フォルダーがサーバーにコピーされたときに、管理者、管理者、およびシステム アカウントのアクセス許可しか持たない親フォルダーのセキュリティ アクセス許可が継承されていることがわかりました。

追加した

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

Read & ExecuteList Folder ContentsおよびRead権限。

問題は解決しましたが、まだいくつか質問があります

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

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

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

于 2008-10-27T09:16:52.620 に答える
1

見た目からすると、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がアンインストールされて再インストールされ、アカウントの適切なアクセス許可が確立されます。

于 2008-10-24T14:10:19.073 に答える
0

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

FileLoadExceptionが発生していますが、実際にはその根本的な原因である、根本的なOutOfMemoryExceptionなどが存在する可能性があります。ロードしようとしているものとその中のコードがわからなければ、実際に問題を引き起こしている原因を特定することはできません。

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

于 2008-10-24T14:10:45.250 に答える
0

私は同じ問題を抱えていましたが、 aspnet_regiis で -u と -i を使用しても解決しませんでした。他の多くの人がここで提案しました。しかし、「%windir%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files」フォルダーをクリーンアップし、このフォルダーに web.config の ID 偽装セクションから読み取り/書き込みアクセス許可をユーザーに与えると、問題はなくなりました。ローカルの ASPNET ユーザーにこれらの権利を与えるだけでは十分ではありませんでした。

于 2009-10-29T21:40:51.640 に答える