Я размещаю службу WCF в службе Windows.Он работает в нескольких версиях Windows, Windows 7, Windows 8, Windows 10, Windows Server 2016 ...
Однако в Windows Server 2012 R2 он не работает.
Когда я пытаюсь запустить службу, я получаю эту ошибку:
Service can not be started. System.PlatformNotSupportedException: This platform does not support operation.
at System.Net.HttpListener..ctor()
at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
at System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.HttpChannelListener`1.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channe...
Вот код службы:
using System;
using System.Configuration;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.ServiceProcess;
namespace WindowsService
{
public partial class GerenciadorMorphoService : ServiceBase
{
private ServiceHost mHost = null;
public GerenciadorMorphoService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
if (mHost != null)
{
mHost.Close();
}
Uri EndPoint = new Uri(ConfigurationManager.AppSettings["EndPointHttp"]);
mHost = new ServiceHost(typeof(Terminais.Terminal), EndPoint);
ServiceMetadataBehavior behave = new ServiceMetadataBehavior
{
HttpGetEnabled = true
};
mHost.Description.Behaviors.Add(behave);
mHost.Open();
}
protected override void OnStop()
{
if (mHost != null)
{
mHost.Close();
mHost = null;
}
}
}
}
Адрес в ConfigurationManager.AppSettings [«EndPointHttp»] is http://localhost:46125/bioacesso/terminais.svc
Брандмауэр отключен, Нет приложения, использующего порт 46125 (проверено с помощью команды netstat) Я использую учетную запись администратора.
Я видел здесь несколько таких сообщений: WCF: PlatformNotSupportedException при запуске серверных проектов ,
однако любое предложенное решение сработало для моего случая,
Кто-нибудь знаетчто может происходить?