У меня есть служба Windows, которую мне нужно установить на машину и работать достаточно долго, чтобы отправить электронное письмо журналов, а затем спать в течение 24 часов. Если я вызываю метод службы из веб-клиента, он работает нормально, но когда я вызываю его из службы Windows, он терпит неудачу каждый раз, и информация об ошибке не дает мне ничего конкретного для расследования:Threading как служба WCF
Объект связи , System.ServiceModel.Channels.ServiceChannel, не может использоваться для связи, поскольку он находится в состоянии Faulted.
public partial class EDBDailyLogMailer : ServiceBase
{
Thread thread;
public EDBDailyLogMailer()
{
InitializeComponent();
this.ServiceName = "EDB Daily Log Mailer";
}
protected override void OnStart(string[] args)
{
try
{
thread = new Thread(MailLogDaily);
thread.Start();
}
catch (Exception ex)
{
throw ex;
}
}
static void MailLogDaily()
{
while (true)
{
try
{
using (ApprovableFieldClient client = new ApprovableFieldClient())
client.EmailEventLog();
Thread.Sleep(86400000);
}
catch (Exception ex)
{
throw ex;
}
}
}
}
Код в EmailEventLog() отлично работает при вызове из других мест, поэтому я не буду публиковать этот код. Вот моя конечная точка в App.config:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="ExperienceServiceBinding" maxReceivedMessageSize="1048576" maxBufferSize="1048576"/>
</netTcpBinding>
</bindings>
<client>
<endpoint bindingConfiguration="ExperienceServiceBinding" address="net.tcp://bosvc01:1125/ApprovableFieldService" binding="netTcpBinding" contract="Ropes.Experience.Administration.Contracts.Services.IApprovableFieldService">
<identity>
<servicePrincipalName value="[email protected]"/>
</identity>
</endpoint>
</client>
<behaviors>
<serviceBehaviors>
<behavior name="Ropes.Experience.Administration.Managers.ApprovableFieldManagerBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
Сервис для ApprovableFieldClient в настоящее время размещается на bosvc01: 1125
Любые предложения будут с благодарностью. Спасибо.