【问题标题】:Crash Msg: Unable to generate a temporary class崩溃消息:无法生成临时类
【发布时间】:2012-07-23 16:11:37
【问题描述】:

我有一个客户端-服务器应用程序。服务器上的安装运行良好。但是,在客户端,当它是 Assembly.Loadfile( 服务器机器上的文件) 时,我得到了上面的错误...

更多细节:代码很简单:

Assembly assembly = Assembly.LoadFile(@"driveonserver\\mydll.dll");

Type typ = assembly.GetType("mycontrol", false);

object obj = Activator.CreateInstance(typ);

出来的错误信息:值不能为空。参数名称:类型

崩溃消息:无法生成临时类(结果=1)。 错误 CS0006: 元数据文件 '//driveonserver\mydll.dll");

[12/01/2012][17:18]:异常类型:System.InvalidOperationException [12/01/2012][17:18]:崩溃源:System.Xml

【问题讨论】:

  • 尝试禁用 AV,如果有的话。我已经看到它会导致这类东西出现问题。

标签: c# .net


【解决方案1】:

当您从服务器加载 DLL 时,您必须在 app.config 中启用 loadFromRemoteSources

<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>

【讨论】:

  • 谢谢。我的问题在这里有一堆 dll,所以我需要找到一种方法来管理这种情况。此外,exe 不在这些 dll 的同一文件夹中。
  • 此配置条目应启用所有 DLL 的远程加载。我会尝试看看它是否有效,如果无效,它可能会以不同的异常返回。
  • 你是对的,经过几天的尝试。我可以确认你的观点是正确的。但是,我有更多与整个应用程序相关的问题。
  • 我的项目有两个部分。一个是从另一个团队创建的 exe 文件。我有一堆用于这些功能的 dll。现在将此配置添加到 app.exe.config。从应用程序到我们的 dll 的调用正在工作。但是,一旦在我的函数(代码)中,它仍然抱怨找不到网络共享文件夹中的 dll。因为exe文件夹和我所有的dll不在同一个文件夹中。我是否需要在配置文件中指出那些 dll 文件夹也应该 loadfromremotesources enable = true,怎么做?
【解决方案2】:

找到this ...

为 IIS 6.0 提供 IIS_WPG/为 IIS 7.0 及更高版本提供 IIS_IUSRS;在 C:\Windows\Temp 上修改访问似乎已经解决了这个问题。

顺便说一句,这适用于 ASP.Net。尚未针对 Windows 应用程序进行完全测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多