Самостоятельный хостинг C # WCF открыт, но браузеры отказались от него

У меня есть WCF, размещенный внутри службы Windows, которая работает как локальная система. Конфигурация WCF выполняется программно (то есть без конфигурации app.config).

Этот узел службы WCF открывается правильно, без каких-либо исключений, и я вижу две конечные точки в режиме отладки (основная конечная точка и конечная точка mex для метаданных).

Когда я открываю веб-браузер (IE) для своей основной конечной точки "https://myserver.mydomain.fr:443/endpoint", я получаю сообщение об ошибке "Эта страница не может быть отображена". Если я запускаю диагностику сети IE, я получаю: «Этот драйвер или удаленный ресурс не настроен для приема подключений через порт https».

URL-адрес зарезервирован с помощью netsh http add urlacl url=https://myserver.mydomain.fr:443/endpoint/ и сертификат был правильно подключен к порту 443 (с GUID этой службы Windows и отпечатком сертификата).

Знаете ли вы, на чем я должен сосредоточить свои усилия? В конфигурации WCF? Это работало, но перестало работать несколько дней назад...

ОБНОВЛЕНИЕ 1: вот мой код.

Мой основной класс ServiceHost:

public class CustomServiceHost : ServiceHost
{
    private string _AssembyIDOfWindowsService=String.Empty;
    private string _mainEndPointRelativeAddress = String.Empty;
    private string _mexRelativeAddress = "mex";

    public CustomServiceHost(Type serviceType, Uri[] baseAddresses, string mainEndPointRelativeAddress, string mexRelativeAddress)
    : base(serviceType, baseAddresses)
    {
        _mainEndPointRelativeAddress = mainEndPointRelativeAddress;
        _mexRelativeAddress = mexRelativeAddress;
    }

    protected override void InitializeRuntime()
    {
        //Add Service debug behavior
        AddServiceDebugBehavior();

        //Add main endpoint and mex endpoint
        AddEndpoints();

        //Configure throttling: means number max of connections, sessions and objects
        ConfigureThrottling();

        //Allow clients to connect without client certificates
        Credentials.ClientCertificate.Authentication.RevocationMode = System.Security.Cryptography.X509Certificates.X509RevocationMode.NoCheck;

            Base.InitializeRuntime(); //My error was here... WTF... So easy...
    }

    /// <summary>
    /// Add main endpoint on wer server and mex endpoint for operations signatures
    /// </summary>
    private void AddEndpoints()
    {
        BasicHttpsBinding basicHttpsBinding = WcfHelpers.ConfigureBasicHttpsBinding();

        foreach (Uri address in this.BaseAddresses)
        {
            //Create endpoint with or without an endpoint name (ie https://myserver.mydomain.fr/443 or https://myserver.mydomain.fr/443/endpoint )
            ServiceEndpoint endpoint = new ServiceEndpoint(
                ContractDescription.GetContract(Description.ServiceType),
                basicHttpsBinding,
                new EndpointAddress(address + _mainEndPointRelativeAddress));

            //Add main service endpoint to service
            AddServiceEndpoint(endpoint);

            //adding behavior
            AddServiceMetadataBehavior();

            //adding mex endpoint (address.AbsoluteUri always finish with \ so not needed between base address and mexRelativeEndpoint
            AddServiceEndpoint(
                ServiceMetadataBehavior.MexContractName,
                MetadataExchangeBindings.CreateMexHttpsBinding(),
                address.AbsoluteUri + _mexRelativeAddress);
        }
    }

    /// <summary>
    /// Add debug behavior if not already done
    /// </summary>
    private void AddServiceDebugBehavior()
    {
        ServiceDebugBehavior debugBehavior = Description.Behaviors.Find<ServiceDebugBehavior>();

        if (debugBehavior == null)
        {
            Description.Behaviors.Add(
                new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });
        }
        else
        {
            if (!debugBehavior.IncludeExceptionDetailInFaults)
                debugBehavior.IncludeExceptionDetailInFaults = true;
        }
    }

    /// <summary>
    /// Add service metadata behavior
    /// </summary>
    private void AddServiceMetadataBehavior()
    {
        ServiceMetadataBehavior metadataBehavior = Description.Behaviors.Find<ServiceMetadataBehavior>();

        if (metadataBehavior == null)
        {
            ServiceMetadataBehavior serviceMetadataBehavior = new ServiceMetadataBehavior();
            serviceMetadataBehavior.HttpsGetEnabled = true;
            Description.Behaviors.Add(serviceMetadataBehavior);
        }
    }

    /// <summary>
    /// Configure max numbers of concurrent accesses (calls, instances and sessions)
    /// </summary>
    private void ConfigureThrottling()
    {
        ServiceThrottlingBehavior throttleBehavior = Description.Behaviors.Find<ServiceThrottlingBehavior>();

        if (throttleBehavior != null) return;

        throttleBehavior = new ServiceThrottlingBehavior
        {
            MaxConcurrentCalls = 100, // MaxConcurrentCalls should be set to less than the SQL connection pool size in queued scenarios
            MaxConcurrentInstances = 100,
            MaxConcurrentSessions = 100
        };

        Description.Behaviors.Add(throttleBehavior);
    }
}

Для настройки httpsbinding я использую этот:

/// <summary>
/// Used by server and clients to define common bindings (thats why its a static method)
/// </summary>
public class WcfHelpers
{
    public static BasicHttpsBinding ConfigureBasicHttpsBinding()
    {
        BasicHttpsBinding basicHttpsBinding;

        basicHttpsBinding = new BasicHttpsBinding
        {
            Name = "myBasicHttpsBinding",

            OpenTimeout = new TimeSpan(0, 10, 0),
            CloseTimeout = new TimeSpan(0, 10, 0),
            SendTimeout = new TimeSpan(0, 10, 0),
            MaxBufferPoolSize = 104857600,
            MaxReceivedMessageSize = 104857600,
            Namespace = "https://myserver.mydomain.fr/443/endpoint",
            ReaderQuotas = new XmlDictionaryReaderQuotas()
            {
                MaxDepth = 104857600,
                MaxStringContentLength = 104857600,
                MaxArrayLength = 104857600,
                MaxBytesPerRead = 104857600,
                MaxNameTableCharCount = 104857600
            },
            Security =
            {
                Mode = BasicHttpsSecurityMode.Transport
            }
        };
        return basicHttpsBinding;
    }
}

Наконец, я создаю свой ServiceHost следующим образом:

//Create my ServiceHost
CustomServiceHost _serviceHost = new CustomServiceHost(typeof(WCF_Service_Library.Service)
                        , new Uri[] { new Uri("https://myserver.mydomain.fr:443/") }
                        , "endpoint"
                        , "mex");

//Attach a selected X509 certificate (X509Certificate2 certFound)
_serviceHost.Credentials.ServiceCertificate.Certificate = certFound;

//Open ServiceHost
_serviceHost.Open();

...

//Close ServiceHost
_serviceHost.Close();

ОБНОВЛЕНИЕ 2: файл журнала WCF:

<events><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.1825288Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" RelatedActivityID="{de1073e0-a063-4b78-a802-e2ea11c2711d}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Start">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.1985712Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{de1073e0-a063-4b78-a802-e2ea11c2711d}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Start"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Construire ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Construct</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>524326</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2016-07-19T09:55:54.1985712Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{de1073e0-a063-4b78-a802-e2ea11c2711d}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.GetServiceElement.aspx</TraceIdentifier><Description>Obtenir ServiceElement.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/ServiceConfigurationTraceRecord"><FoundServiceElement>False</FoundServiceElement></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2135766Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{de1073e0-a063-4b78-a802-e2ea11c2711d}" RelatedActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Stop">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2135766Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{de1073e0-a063-4b78-a802-e2ea11c2711d}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Stop"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Construire ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Construct</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2765741Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" RelatedActivityID="{c002e9ab-b644-4f63-8efe-ce7b77e403e3}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Start">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2765741Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{c002e9ab-b644-4f63-8efe-ce7b77e403e3}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Start"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Ouvrir ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Open</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>524333</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2765741Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{c002e9ab-b644-4f63-8efe-ce7b77e403e3}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.ServiceHostBaseAddresses.aspx</TraceIdentifier><Description>Adresses de base ServiceHost.</Description><AppDomain>Windows Service</AppDomain><Source>Windows_Service.CustomServiceHost/45867655</Source><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/CollectionTraceRecord"><BaseAddresses><Address>https://myserver.mydomain.fr:443/</Address></BaseAddresses></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2765741Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{c002e9ab-b644-4f63-8efe-ce7b77e403e3}" RelatedActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Stop">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:55:54.2765741Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{c002e9ab-b644-4f63-8efe-ce7b77e403e3}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Stop"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Ouvrir ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Open</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:56:09.3075479Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" RelatedActivityID="{19dd45d9-e0f7-4ffe-aa8e-4aaf7b5b18ba}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Start">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:56:09.3075479Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{19dd45d9-e0f7-4ffe-aa8e-4aaf7b5b18ba}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Start"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Fermer ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Close</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>524333</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2016-07-19T09:56:09.3075479Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{19dd45d9-e0f7-4ffe-aa8e-4aaf7b5b18ba}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.ServiceHostBaseAddresses.aspx</TraceIdentifier><Description>Adresses de base ServiceHost.</Description><AppDomain>Windows Service</AppDomain><Source>Windows_Service.CustomServiceHost/45867655</Source><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/CollectionTraceRecord"><BaseAddresses><Address>https://myserver.mydomain.fr:443/</Address></BaseAddresses></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Transfer">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:56:09.3075479Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{19dd45d9-e0f7-4ffe-aa8e-4aaf7b5b18ba}" RelatedActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131085</EventID><Type>3</Type><SubType Name="Stop">0</SubType><Level>255</Level><TimeCreated SystemTime="2016-07-19T09:56:09.3075479Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{19dd45d9-e0f7-4ffe-aa8e-4aaf7b5b18ba}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="4" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Stop"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.ActivityBoundary.aspx</TraceIdentifier><Description>Limite d'activité.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><ActivityName>Fermer ServiceHost 'WCF_Service_Library.Service'.</ActivityName><ActivityType>Close</ActivityType></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131073</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2016-07-19T09:56:09.4795464Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="2" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.AppDomainUnload.aspx</TraceIdentifier><Description>Déchargement d'un domaine d'application.</Description><AppDomain>Windows Service</AppDomain><ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord"><AppDomain.FriendlyName>Windows Service</AppDomain.FriendlyName><ProcessName>Windows Service</ProcessName><ProcessId>6676</ProcessId></ExtendedData></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent><E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>131073</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2016-07-19T09:56:09.4795464Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Windows Service" ProcessID="6676" ThreadID="2" /><Channel/><Computer>DEV01</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord Severity="Information" Channel="Debug" xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"><TraceIdentifier>http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.Diagnostics.AppDomainUnload.aspx</TraceIdentifier><Description>Déchargement AppDomain. AppDomain.FriendlyName Windows Service, ProcessName Windows Service, ProcessId 6676.</Description><AppDomain>Windows Service</AppDomain></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent></events>

Спасибо за вашу помощь!


person Francois    schedule 19.07.2016    source источник
comment
Включите трассировку WCF, а также используйте Fiddler. Это может дать некоторые намеки на то, что двигаться дальше.   -  person Lex Li    schedule 19.07.2016
comment
Спасибо, сейчас сделаю! :)   -  person Francois    schedule 19.07.2016
comment
Из моего любопытства вам нужно было настроить исключение брандмауэра или что?   -  person    schedule 19.07.2016
comment
Исключение брандмауэра не требуется... Мой FW включен.   -  person Francois    schedule 19.07.2016
comment
Хорошо, я видел одну странную информационную трассировку перед ServiceHost.Open(): Get ServiceElement возвращает FoundServiceElement=False... У меня нет ServiceHostFactory... Это связано с ?   -  person Francois    schedule 19.07.2016
comment
(К вашему сведению, для локальной системы не требуется резервирование URL-адресов, это потребуется для локальной службы, но это нормально) Перезапустите службу хоста Windows, поделитесь кодом службы win, прикрепите обработчик журнала при открытии wcf... проверьте также netstat   -  person    schedule 19.07.2016
comment
@Machine Learning: хорошо, заметил...   -  person Francois    schedule 19.07.2016


Ответы (1)


Переустановите и перезапустите службу хоста.

Реализуйте следующие обработчики wcf

serviceHost.Opening += new EventHandler(serviceHost_Opening);
serviceHost.Opened += new EventHandler(serviceHost_Opened);
serviceHost.Closing += new EventHandler(serviceHost_Closing);
serviceHost.Closed += new EventHandler(serviceHost_Closed);
serviceHost.Faulted += new EventHandler(serviceHost_Faulted);
serviceHost.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(serviceHost_UnknownMessageReceived);

serviceHost.Open();

Проверьте также события Windows и netstat.

netstat -aon | find ":443"

чтобы узнать, действительно ли привязка порта активна и какая программа принадлежит этому PID.

Обратите внимание, не закрывайте узел службы после его открытия (откройте wcp в службе Windows OnStart и закройте ее в OnStop)

Посмотрите также пример msdn для указания адреса конечной точки в код

Uri baseAddress = new Uri("http://localhost:8000/HelloService");
string address = "http://localhost:8000/HelloService/MyService";

using (ServiceHost serviceHost = new ServiceHost(typeof(HelloService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(IHello), new BasicHttpBinding(), address);
    serviceHost.Open();
    Console.WriteLine("Press <enter> to terminate service");
    Console.ReadLine();
    serviceHost.Close();
}

Последнее замечание, я ожидаю, что вы должны добавить

base.InitializeRuntime();

в конце protected override void InitializeRuntime()

person Community    schedule 19.07.2016
comment
Я переустанавливал и перезапускал несколько раз. Без изменений. И никаких ошибок или предупреждений о событиях Windows. - person Francois; 19.07.2016
comment
Если netstat не возвращает никаких результатов => служба wcf не прослушивает порт, это важно. Как насчет журналов обработчиков wcf: вы их реализовали? (Я читаю обновления вашего вопроса... Возможно, я отредактирую свой ответ) - person ; 19.07.2016
comment
Я еще не реализовал обработчики, но буду. Я добавил файл журнала WCF в UPDATE2... Спасибо за ваше руководство... Вы мне очень помогли! - person Francois; 19.07.2016
comment
Хорошо, я реализовал эти обработчики, и только 2 вызываются при запуске (CustomerServiceHost_Opening и CustomerServiceHost_Opened) и 2 при остановке: (CustomerServiceHost_Closing и CustomerServiceHost_Closed). Итак, звучит неплохо на этих запущенных событиях... - person Francois; 19.07.2016
comment
У меня есть сомнения относительно того, что мне следует указать в ConfigureBasicHttpsBinding().Namespace. Это полный URL с конечной точкой? Означает myserver.mydomain.fr/443/endpoint... - person Francois; 19.07.2016
comment
Вы имеете в виду адрес конечной точки? Я отредактировал свой ответ, включив в него пример его указания в коде... - person ; 19.07.2016
comment
Спасибо за разъяснение, serviceHost.Open() вызывается в Windows Service OnStart(), а serviceHost.Close() вызывается в OnStop(). Нет, я говорил о значении, которое должно быть определено в пространстве имен basicHttpsBinding. - person Francois; 19.07.2016
comment
Что ж, возможно, прикрепленный вами файл .svclog был поврежден при моей загрузке, но я бы сказал, что может быть проблемой в построении адреса конечной точки, так как я вижу TraceIdentifier http://msdn.microsoft.com/fr-FR/library/System.ServiceModel.ServiceHostBaseAddresses.aspx. Вот почему я предлагаю временно заменить ваш CustomServiceHost стандартным ServiceHost + AddServiceEndpoint. Надеюсь, это поможет определить, где проблема - person ; 19.07.2016
comment
Хорошо, я понимаю, и я пытаюсь... Спасибо машинному обучению! :) - person Francois; 19.07.2016
comment
Вы были правы... Кажется, проблема возникла, когда я использовал конструктор ServiceEndPoint с ContractDescription.GetContract(Description.ServiceType). Коррупция была здесь. Я должен переставить все эти куски кода вместе, чтобы найти решение... Еще раз спасибо!!! - person Francois; 19.07.2016
comment
Спасибо! Я думаю, вам нужно добавить base.InitializeRuntime(); в конце InitializeRuntime - person ; 19.07.2016
comment
КАК Я МОГ ЭТОГО ПРОПУСТИТЬ!!! :) Спасибо машинному обучению, теперь все работает нормально с моим предыдущим кодом... - person Francois; 19.07.2016