在IIS中部署后,Web应用程序EventWaitHandle无法正常工作

时间:2015-04-29 05:00:30

标签: c# asp.net iis ipc event-wait-handle

我有一个Web服务(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中,有一个始终为true的while循环和EventWaitHandle上的WaitOne

var newMessageSignal = new EventWaitHandle(false, EventResetMode.AutoReset, "MySignalName");
while(true)
{
    newMessageSignal.WaitOne();
    //Do Something Useful
}

我的问题是,此代码在IIS Express上运行时运行正常(在Visual Studio中调试)但在我发布和部署应用程序然后运行它时失败。即使WS设置了信号,CA也会持续等待(我假设WS将信号设置为之前的语句是数据库提交并且成功)。我无法弄明白,为什么会这样。

感谢任何帮助,谢谢。

0 个答案:

没有答案