2012-01-13 76 views
0

我有一个客户端 - 服务器应用程序。服务器上的安装运行良好。然而,在客户端,我当它是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

+0

尝试禁用AV,如果你有它。我已经看到它导致这种类型的问题。 – 2012-01-13 18:01:42

回答

2

当你从服务器加载一个DLL,您必须启用在你的app.config loadFromRemoteSources

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

谢谢。我的问题在这里有一堆dll,所以我需要找到一种方法来管理这种情况。此外,exe文件不在这些dll的相同文件夹中。 – 2012-01-16 16:01:03

+0

此配置条目应为所有DLL启用远程加载。我会试着去看看它是否有效,如果没有,它可能会回来一个不同的例外。 – 2012-01-16 16:56:11

+0

你是对的,经过几天的尝试。我可以证实你的观点是正确的。无论如何,我有更多与整个应用程序有关的问题。 – 2012-01-18 21:13:41

0

发现this ...

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

顺便说一句,这适用于ASP.Net。没有完全测试Windows应用程序。