У нас есть служба Windows, которая прослушивает порт WCF.Служба запускается и успешно связывается с портом, возможно, в 25% случаев.Это происходит на 2 разных машинах.Этот код был стабильным в течение некоторого времени, единственное отличие может заключаться в том, что мы переориентировались на .NET 4.6.2, когда вернулись, но мы не совсем уверены, было ли это как-то связано с этим.Когда происходит сбой, мы получаем следующее:
System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Provider type not defined. (Exception from HRESULT: 0x80090017)
File name: 'System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at System.ServiceModel.Diagnostics.TraceUtility.SetEtwProviderId()
at System.ServiceModel.ServiceHostBase..ctor()
at System.ServiceModel.ServiceHost..ctor(Object singletonInstance, Uri[] baseAddresses)
at PSC.Tools.Communication.ListeningExecutorServerWCF.OnStart()
=== Pre-bind state information ===
LOG: DisplayName = System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///D:/FieldAssist/Server/binaries/Links/
LOG: Initial PrivatePath = NULL
Calling assembly : System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: Binding succeeds. Returns assembly from C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Internals\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Internals.dll.
LOG: Assembly is loaded in default load context.
Как видно из информации журнала привязок, похоже, что она успешно разрешила сборку.У кого-нибудь есть идеи?
Строка кода, выдающая исключение:
ServiceHost serviceHost = new ServiceHost(serviceInstance);
Где serviceInstance - это экземпляр класса (так что мы устанавливаем одиночный код).