Я создал библиотеку классов под названием AddServiceLibrary, в которой у меня есть метод с именем
AssemblyLoader код ниже:
string executingAssemblyName = Application.ExecutablePath;
AssemblyName asmName = AssemblyName.GetAssemblyName(executingAssemblyName);
AppDomain appDomain = AppDomain.CurrentDomain;
Assembly assembly = appDomain.Load(asmName);
_assemblyTypes = assembly.GetTypes().ToList();
LoadAppConfig();
этот метод загружает исполняемую сборку в текущий домен приложения.
У меня есть другой метод под названием LoadAppConfig ()
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);
Этот метод читает файл 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, она находит сервис и работает нормально.
Пожалуйста, посмотрите на это и предложите мне, что может быть не так в моем подходе.