none
w3wp.exe崩溃,Session丢失问题 Process name: w3wp.exe Account name: IIS APPPOOL\WriteExcel7000 RRS feed

  • 问题

  • 运行环境:Win7 Ent + IIS 7 + VS05

    从网上找了个写Excel2007的代码,修改为自己可用的类库。在最后删除临时写Excel2007的文件夹时,出现w3wp.exe崩溃,Session丢失问题

    以下为日志:

    Event code: 4010
    Event message: 发生了未处理的安全异常。
    Event time: 2012/11/28 15:19:24
    Event time (UTC): 2012/11/28 7:19:24
    Event ID: 44099d6f6b634e558920d7c1a844e79f
    Event sequence: 9
    Event occurrence: 1
    Event detail code: 0
     
    Application information:
        Application domain: /LM/W3SVC/17/ROOT-12-129985607602075010
        Trust level: Full
        Application Virtual Path: /
        Application Path: D:\WriteXMLExcel.1\
        Machine name: DAISY-PC
     
    Process information:
        Process ID: 9400
        Process name: w3wp.exe
        Account name: IIS APPPOOL\WriteExcel7000
     
    Request information:
        Request URL: 
        Request path: 
        User host address: 
        User: 
        Is authenticated: False
        Authentication Type: 
        Thread account name: IIS APPPOOL\WriteExcel7000
     
    Custom event details:

    ======================

    最后找到出问题的源码为删除文件夹时,注释此方法,session丢失问题即解决

    private static void DeleteFolder(string dir)
            {
                // 循环文件夹里面的内容
                /**/foreach (string f in Directory.GetFileSystemEntries(dir))
                {
                    // 如果是文件存在
                    if (File.Exists(f))
                    {
                        FileInfo fi = new FileInfo(f);
                        if (fi.Attributes.ToString().IndexOf("Readonly") != 1)
                        {
                            fi.Attributes = FileAttributes.Normal;
                        }
                        // 直接删除其中的文件
                        File.Delete(f);
                    }
                    else
                    {
                        // 如果是文件夹存在
                        // 递归删除子文件夹
                        DeleteFolder(f);
                    }
                }
                // 删除已空文件夹//
                Directory.Delete(dir);
            }
    可我左右没看出来这段代码有什么问题。
    2012年11月28日 7:29

答案