1. ホーム
  2. asp.net

[解決済み] ファイル、アセンブリ、またはその依存関係のいずれかを読み込むことができませんでした。アクセスは拒否されました。この問題はランダムに発生しますが、一度発生した後は継続します。

2023-05-08 19:01:42

質問

このエラーに関する情報はたくさんあります: 'ERROR: ファイルまたはアセンブリ '*.dll' またはその依存関係の 1 つを読み込むことができませんでした。アクセスは拒否されました。 しかし、私は私のシナリオに固有の答えを見つけることができませんでした。 私のサイトは6つの異なるプロダクションサーバーにデプロイされていますが、1つのサーバーでのみ、私はこの問題に直面しています。問題はランダムに発生しますが、一度発生すると、web.configファイルを少し修正してサイトを再コンパイルするまで続きます(web.configの修正後にWebアプリケーションを再コンパイルするというトリックは知っています)、そのサーバー上のサイトは機能し始めるのです。 昨日、1ヶ月ぶりに問題が再現されました。 私たちはこの問題を本番に持ち込むわけにはいきません。

問題の詳細。

アプリケーション '/' でサーバー エラーが発生しました。 ____________________________________ ファイルまたはアセンブリ 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つをロードできませんでした。アクセスは拒否されました。 説明 現在のWebリクエストの実行中に、処理されない例外が発生しました。エラーの詳細とコードの発生場所については、スタックトレースを確認してください。

例外の詳細です。System.IO.FileLoadException: ファイルまたはアセンブリ 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つをロードできませんでした。アクセスは拒否されました。

ソースエラーです。 現在の Web リクエストの実行中に、処理されない例外が発生しました。例外の発生元と発生場所に関する情報は、以下の例外スタックトレースを使用して特定できます。

アセンブリのロード トレース。以下の情報は、アセンブリ 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' をロードできなかった理由を特定するのに役立ちます。

WRN: アセンブリバインディングのロギングがオフになっています。 アセンブリバインディング失敗のログを有効にするには、レジストリ値[HKLM⇄Microsoft⇄Fusion!EnableLog] (DWORD) を 1 に設定します。 注:アセンブリバインドの失敗のロギングに関連するパフォーマンスペナルティがあります。 この機能をオフにするには、レジストリ値[HKLMxxSoftware, MicrosoftxxFusion!EnableLog]を削除してください。

スタックトレース。

[FileLoadException: ファイルまたはアセンブリ 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。アクセスは拒否されました]。 ...DbImpl.Event.TTCEventController.GetEventFields(Int32 eventId) +0 WebSuite.SportChannel.ModelImpl.TTCModelController.AddEventFieldList(XmlElement eventNode, ITTCEventController ctrl, Int32 eventId, PlayerType stupidType) in ...rootSportChannel↘TTCModelController.cs:171(サンプルサイト ...ModelImpl.TTCModelController.GetLatestFourTourSchedulesXml() in ...rootSportChannelGetModelImpl‡TtcModelController.cs:283 ...WebRoot.UserControls.HeadlinesTab.Page_Load(Object sender, EventArgs e) +491 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 システム.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42 System.EventHandler.Invoke(Object sender, EventArgs e) +0 システムWeb.UI.Control.OnLoad(EventArgs e) +132 システムWeb.UI.Control.LoadRecursive() +66 システムWeb.UI.Control.LoadRecursive() +191 システムWeb.UI.Control.LoadRecursive() +191 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428

____________________________________

バージョン情報です。Microsoft .NET Framework Version:2.0.50727.5446; ASP.NET Version:2.0.50727.5420

どのように解決するのですか?

私の解決方法は以下の通りです。

を見つけられませんでした。 ルート 下フォルダ C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files .

Google は、現在のユーザーに対する権限の問題かもしれないと教えてくれましたが、その後、私は現在の ID を持っていることがわかりました。 IIS APPPOOL を使用しており、残りのサーバーはCurrent Identityを持っています。 NT AUTHORITY\NETWORK SERVICE .

次に、Current Identity を IIS APPPOOL から NT AUTHORITY\NETWORK SERVICE .

ここから、Web アプリをリセットすると、一時的な ASP.NET キャッシュが再構築され、問題が解決されることがわかりました。