我創建了一個稱爲AddServiceLibrary類庫中,我已經叫 的方法AssemblyLoader的代碼如下:無連接可以作出,因爲目標機器積極地拒絕它在WCF
string executingAssemblyName = Application.ExecutablePath;
AssemblyName asmName = AssemblyName.GetAssemblyName(executingAssemblyName);
AppDomain appDomain = AppDomain.CurrentDomain;
Assembly assembly = appDomain.Load(asmName);
_assemblyTypes = assembly.GetTypes().ToList();
LoadAppConfig();
這種方法加載在當前appdomain中執行程序集。 我有()
ServicesSection serviceSection = ConfigurationManager.GetSection("system.serviceModel/services") as ServicesSection;
ServiceElementCollection sereleColl = serviceSection.Services;
string endPointAddress = string.Empty ;
foreach (var ele in sereleColl)
{
_serviceType = GetServiceType((System.ServiceModel.Configuration.ServiceElement)(ele)).Name);
break;
}
ServiceHoster.HostService(_serviceType);
稱爲LoadAppConfig另一種方法,此方法讀取app.config文件,並發現WCF服務的類型。 我還有一個類ServiceHoster中,我有一個方法HostService:
public static void HostService(Type serviceType)
{
using (ServiceHost host = new ServiceHost(serviceType))
{
host.Open();
}
}
現在,我有一個不同的項目稱爲MyWCFService和我在這個項目中添加AddServiceLibrary的參考和調用方法;
AddServiceLibrary.LoadLibrary lb = new AddServiceLibrary.LoadLibrary();
lb.AssemblyLoader();
我希望在這一點上,我的服務是否正常託管,但是當我在我的客戶端項目要AddServiceReference告訴它是我 無連接可以作出,因爲目標機器積極地拒絕它的概率在 雖然如果我不使用我的AddServiceLibrary,它會發現服務並正常工作。 請有人看看它,並建議我在我的方法可能是錯誤的。
謝謝先生,它工作時,我刪除使用塊,但先生你可以請指導我如何實現服務主機分開處置? – 2009-07-09 11:33:22