#asp.net #wcf
#asp.net #wcf
Вопрос:
Есть ли какой-либо способ развернуть ее без IIS после создания службы WCF? Созданная мной служба будет использоваться только в локальной сети, и я бы предпочел, чтобы хост не запускал ASP.NET сервер только для размещения службы WCF.
Другая причина, по которой мне нужно иметь возможность делать это, заключается в том, что одна из библиотек DLL, которые я буду использовать, на самом деле плохо работает с ASP.NET .
Ответ №1:
Службу WCF можно разместить как в службе Windows, так и в IIS:
Комментарии:
1. Смогут ли другие компьютеры в той же локальной сети по-прежнему получать доступ к службе WCF, если я размещу ее в службе Windows?
2. Да, разрешения (и привязка), позволяющие
Ответ №2:
Службу WCF можно разместить в любом EXE-файле, а не только в службе Windows. Вам нужно написать некоторый код для host, но это тривиально:
using System;
using System.ServiceModel;
using System.ServiceProcess;
namespace MyService.Hosts
{
public partial class MyWindowsService : ServiceBase
{
ServiceHost host;
public MyWindowsService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Type serviceType = typeof(MyWcfService);
host = new ServiceHost(serviceType);
host.Open();
}
protected override void OnStop()
{
if(host != null)
host.Close();
}
}
}
Кстати, при развертывании с использованием IIS вы получаете все дополнительные возможности, предлагаемые IIS, бесплатно, включая простое веб-развертывание, интегрированную безопасность и ASP.NET модель событий.