Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在IIS中部署后,Web应用程序EventWaitHandle不工作_C#_Asp.net_Iis_Ipc_Event Wait Handle - Fatal编程技术网

C# 在IIS中部署后,Web应用程序EventWaitHandle不工作

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; 在应用程序启

我有一个web服务(WS)和一个控制台应用程序(CA)

WS接受数据并插入到数据库中。CA读取此数据并执行操作。同步工作如下。WS具有以下代码:

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吗?