3

IDesign の ServiceModelEx ライブラリを使用しようとしています。電話しようとすると:

InProcFactory.CreateInstance();

WCF サービス (基本的には WCF サービス A から WCF サービス B を呼び出す) から、次のエラーが発生します。

動的アセンブリが見つかりませんでした

失敗しているコードは次のとおりです。

  internal static Assembly[] GetWebAssemblies()
  {
     Debug.Assert(IsWebProcess());
     List<Assembly> assemblies = new List<Assembly>();

     if(Assembly.GetEntryAssembly() != null)
     {  
        throw new InvalidOperationException("Can only call in a web assembly");
     }
     foreach(ProcessModule module in Process.GetCurrentProcess().Modules)
     {
         assemblies.Add(Assembly.LoadFrom(module.FileName));
         if (module.ModuleName.StartsWith("App_Code.") && module.ModuleName.EndsWith(".dll"))
         {
             assemblies.Add(Assembly.LoadFrom(module.FileName));
         }
         if (module.ModuleName.StartsWith("App_Web_") && module.ModuleName.EndsWith(".dll"))
         {
             assemblies.Add(Assembly.LoadFrom(module.FileName));
         }
     }
     if (assemblies.Count == 0)
     {
         throw new InvalidOperationException("Could not find dynamic assembly");
     }
     return assemblies.ToArray();
  }

これは Web サイトまたは Web アプリケーション (WCF サービス) ではないため、アセンブリには App_Web または App_Code がプレフィックスされていません。ただし、Web サイト、Web アプリケーション、または EXE から呼び出すと、コードは機能します。これは設計によるものですか?

4

2 に答える 2

1

たぶん、あなたが期待するモジュールは、このシナリオでは単にロードされていません。

于 2012-11-08T14:43:03.753 に答える