Самостоятельно размещенное приложение службы WCF net.tcp не может запускаться с перерывами - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть служба 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 - это экземпляр класса (так что мы устанавливаем одиночный код).

...