2012-01-13 74 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應用程序。