-2
我有一個帶有服務庫的WCF服務。我想在一個新的AppDomain中創建一個類庫的實例,但這會引發異常:在AppDomain中加載WCF庫時無法加載文件或程序集
無法加載文件或程序集「ClassLibrary1.dll」或其某個依賴項。
//Class library
public class Class1 : MarshalByRefObject
{
public string Method1(int i)
{
return "int=" + i;
}
}
//Class WCF Service
public class Service1 : IService1
{
public string GetData(int value)
{
string name = typeof(Class1).Assembly.GetName().FullName;
string type_name = typeof(Class1).FullName;
var _Dom = AppDomain.CreateDomain("SubDomain", null, info);
//why is it not working?
//exception - not found assembly file
var _Factory = _Dom.CreateInstanceAndUnwrap(name, type_name) as Class1;
//it's worked
//var _Factory = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(name, type_name) as Class1;
return _Factory.Method1(value);
}
}
//Client method to service
static void Main(string[] args)
{
using (Service1Client cc = new Service1Client())
{
Console.WriteLine("Client opened.");
Console.Write("Enter integer: ");
int i = 0;
int.TryParse(Console.ReadLine(), out i);
try
{
var r = cc.GetData(i);
Console.WriteLine(r);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
cc.Close();
Console.WriteLine("Client closed. Press Enter key to exit...");
Console.ReadLine();
}
}
你應該可能會解決您的questi的一些問題上。首先,請不要只鏈接到其他網站上的解決方案,而是在問題中添加相關代碼片段。其次,告訴我們你試圖解決這個問題的原因,以及爲什麼它不起作用。請注意,您可以隨時編輯您的問題。 – Jeroen
它告訴你什麼裝配不能被加載。請提供完整的例外信息 –
您的某個引用不存在於您期望的位置。如果這是同一臺機器 - 請檢查您是否沒有引用位於某處的obj/debug文件夾中的一個 - 如果這是一臺單獨的機器(可能是構建服務器) - 請檢查您是否引用了本地版本而非gac版本。 (單擊參考並查看VS中其屬性下的文件路徑) – Chris