Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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# 为什么Task.Factory.StartNew()永远不会在IIS7下运行其操作?_C#_Asp.net_Iis 7_Taskfactory - Fatal编程技术网

C# 为什么Task.Factory.StartNew()永远不会在IIS7下运行其操作?

C# 为什么Task.Factory.StartNew()永远不会在IIS7下运行其操作?,c#,asp.net,iis-7,taskfactory,C#,Asp.net,Iis 7,Taskfactory,我有一个运行.ASP.NET WebForms.NET 4.0代码的Windows Server 2008 R2 IIS 7实例。在回发中,有一个线程繁殖,它运行一个长时间运行的进程 以下代码不适用于IIS7。在Cassini和另一个Windows Server 2003 IIS6实例下,它在本地运行良好 var t = Task.Factory.StartNew(() => ProcessWorkItem(wid)); var ex = t.Exception; Log(string.F

我有一个运行.ASP.NET WebForms.NET 4.0代码的Windows Server 2008 R2 IIS 7实例。在回发中,有一个线程繁殖,它运行一个长时间运行的进程

以下代码不适用于IIS7。在Cassini和另一个Windows Server 2003 IIS6实例下,它在本地运行良好

var t = Task.Factory.StartNew(() => ProcessWorkItem(wid));
var ex = t.Exception;
Log(string.Format("Spawned background task to wid={5}: id={1} status={4} isfaulted={3} iscompleted={2} ex={0}",
            ex == null ? "no exception" : ex.ToString(),
            t.Id,
            t.IsCompleted,
            t.IsFaulted,
            t.Status,
            wid));
无论服务器是什么,都不会记录异常,isfaulted=false和iscompleted=true

然而,ProcessWorkItem中也有一个log语句,虽然在IIS6或Cassini本地开发服务器上可以很好地命中,但在IIS7上从未命中该语句


知道为什么吗?

日志文件在哪里?IIS可能没有写入本地磁盘的权限。它实际上会记录到系统事件日志。运行IIS的用户可以访问事件日志。ProcessWorkItem已运行。它只是有一个bug。@usr:我也这么认为,但我无法以任何方式证实它。行动中的第一件事是记录。。。我从来没有看到过。也许我可以试着抛出一个异常。。。我也有类似的问题,一旦部署,它的方法就不会被调用。方法的参数就是问题所在。我将参数封装到内部类中&它开始工作。