Веб-приложение EventWaitHandle не работает после развертывания в IIS
У меня есть веб-сервис (WS) и консольное приложение (CA).
WS принимает данные и вставляет в базу данных. CA читает эти данные и выполняет операции. Синхронизация работает следующим образом. WS имеет код:
MyProject.Web.MvcApplication.newDataServiceMessageSignal.Set()
где newDataServiceMessageSignal объявлен в файле global.asax
public static EventWaitHandle newDataServiceMessageSignal;
и на application_start присваивается следующее значение:
protected void Application_Start()
{
..
newDataServiceMessageSignal = new EventWaitHandle(false, EventResetMode.AutoReset, "MySignalName");
..
}
В CA есть цикл while, который всегда имеет значение true, и WaitOne в EventWaitHandle
var newMessageSignal = new EventWaitHandle(false, EventResetMode.AutoReset, "MySignalName");
while(true)
{
newMessageSignal.WaitOne();
//Do Something Useful
}
Моя проблема заключается в том, что этот код работает нормально во время работы в IIS Express (отладка в Visual Studio), но завершается ошибкой, когда я публикую и внедряю приложение, а затем запускаю его. CA непрерывно ждет, даже если WS устанавливает сигнал (я предполагаю, что WS устанавливает сигнал как оператор, прежде чем это будет сделано в базе данных и будет успешным). Я не могу понять, почему он так себя ведет.
Любая помощь приветствуется, спасибо.