0

我有一个 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 将信号设置为之前的语句是数据库提交并且它成功)。我无法弄清楚,为什么它会这样。

任何帮助表示赞赏,谢谢。

4

0 回答 0