C# 在IIS中部署后,Web应用程序EventWaitHandle不工作
我有一个web服务(WS)和一个控制台应用程序(CA) WS接受数据并插入到数据库中。CA读取此数据并执行操作。同步工作如下。WS具有以下代码:C# 在IIS中部署后,Web应用程序EventWaitHandle不工作,c#,asp.net,iis,ipc,event-wait-handle,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; 在应用程序启
MyProject.Web.MvcApplication.newDataServiceMessageSignal.Set()
其中newDataServiceMessageSignal在global.asax文件中声明
public static EventWaitHandle newDataServiceMessageSignal;
在应用程序启动时,给出以下值:
protected void Application_Start()
{
..
newDataServiceMessageSignal = new EventWaitHandle(false, EventResetMode.AutoReset, "MySignalName");
..
}
在CA中,有一个while循环始终为true,在EventWaitHandle上有一个WaitOne
var newMessageSignal = new EventWaitHandle(false, EventResetMode.AutoReset, "MySignalName");
while(true)
{
newMessageSignal.WaitOne();
//Do Something Useful
}
我的问题是,这段代码在运行IIS Express(在Visual Studio中调试)时工作正常,但在发布和部署应用程序并运行它时失败。即使WS设置了信号,CA也会持续等待(我假设WS将该信号设置为语句,然后才是数据库提交,并且成功提交)。我不明白为什么它会这样
非常感谢您的帮助。我认为WS和CA不是使用同一用户运行的。尝试使用同一用户进行调试,并查看以下内容:。这可能会有帮助。@CyrilDurand谢谢你。这正是正在发生的事情。事实证明,我必须使用另一个构造函数
EventWaitHandle(bool initialState,EventResetMode mode,string name,out bool createdNew,EventWaitHandleSecurity eventSecurity)
看起来我需要多读一点。你能详细介绍一下@Pazza22吗?