0

ASP.NETアプリケーションで、binサブフォルダーに格納されているさまざまなアセンブリからAppDomainでメソッドを実行しようとしています。AppDomainを作成し、AppDomain.CreateInstanceAndUnwrapを呼び出しています。私のコンピューターとWindowsServer2K8では正常に動作しますが、WindowsServer2k3では例外がスローされます。

System.AppDomain.CreateInstanceAndUnwrap(String assemblyName、String typeName)at System.AppDomain.CreateInstance(String assemblyName、String typeName)at System.Activator.CreateInstance(String assemblyName、String typeName)at System.Activator.CreateInstance(String assemblyName、String typeName、ブール値ignoreCase、BindingFlags bindingAttr、バインダーバインダー、Object [] args、CultureInfoカルチャー、Object [] ActivationAttributes、Evidence securityInfo、StackCrawlMark&stackMark)at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection )at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection、System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection、Boolean ChargeSecurityChecks)at System.Reflection.RuntimeAssembly._nLoad(Ass 、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、ブール値throwOnFileNotFound、ブール値forIntrospection、ブール値suppressSecurityChecks)Reflection.RuntimeAssembly._nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection、BooleansuppressSecurityChecks)Reflection.RuntimeAssembly._nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection、BooleansuppressSecurityChecks)

System.IO.FileLoadException:ファイルまたはアセンブリ'MyAssembly'またはその依存関係の1つを読み込めませんでした。API呼び出しが異常終了しました。(HRESULTからの例外:0x800300FA(STG_E_ABNORMALAPIEXIT))System.IO.FileLoadException:ファイルまたはアセンブリ'MyAssembly、Version = 2.23.7.23064、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。API呼び出しが異常終了しました。(HRESULTからの例外:0x800300FA(STG_E_ABNORMALAPIEXIT))

誰かがその理由を知っていますか?

4

1 に答える 1

0

私の答え(IIS6で実行されているASP.NETサイトでAppDomainシャドウコピーファイルアクセスが拒否されました):問題の理由はCachePathのデフォルト値です。AppPoolがネットワークサービスで実行されている場合、DefaultUser tempフォルダーの場所が使用されます(理由はわかりません)。ただし、ネットワークサービスはフォルダにアクセスできず、それが例外の理由です。解決策は、CachePathを明示的に設定することです。たとえば、ASP.NETAppPoolキャッシュパスを使用できます。

var domainInfo = new AppDomainSetup
  {
    CachePath = AppDomain.CurrentDomain.SetupInformation.CachePath
    /* ...*/
  };
于 2012-08-21T13:07:42.423 に答える