在某些机子上,即使打开了文件的全部权限,依然会出线下面的错误,之后就在web.config文件中加入“ <identity impersonate="true"/>”节点,系统允许创建线程,但是退出不了救命。。
在一些xp上不用打开“ <identity impersonate="true"/>”节点的线程就可以退出请问何解请大侠们帮帮忙异常详细信息: System.UnauthorizedAccessException: 拒绝访问。 
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

解决方案 »

  1.   

    是否添加 network service 用户?
      

  2.   

    系统组件服务DCOM中 
    设安全权限(自定义加everyone)
      

  3.   

    2\在 IIS  上设匿名访问写权限
      

  4.   

    谢谢各位大侠的指教...明天回去公司试试大家的方法...我现在出现的问题是...加入了<identity impersonate="true"/>”节点就可以有权限创建Excel线程...不过当我运行多次后...线程不断增加...即使销毁导向..退出文件..垃圾回收...Excel线程还不会退出...不清楚到底是什么原因...
      

  5.   

    哦,对了。对amandag,huangkc,huangkc几位师傅,你们的方法能否写详细点呢恕小弟无能不能理解吖。。例如推想是什么原因引起线程退出不了,还有就是在哪里设置
      

  6.   

    同意 huangkc  的 方法开始-》运行-》dcomcnfg  , 弹出组件服务配置框组件服务-》计算机-》我的电脑-》DCOM配置找到microsoft excel —》右键属性-》安全—》把各种权限都自定义加上everyone把
      

  7.   

    yd(达子) ...厉害哦我取消了<identity impersonate="true"/>节点然后在从组件服务器配置network service的启动Excel线程权限,amandag(高歌)厉害哦加Every One比较危险拉然后就可以启动线程,而且线程可以正常退出呵呵,谢谢各位的指点特别是yd(达子),huangkc(软贱&henchman),amandag(高歌)...,还有一个问题希望与大家继续探讨,就是在web.config中加入<identity impersonate="true"/>节点,也有权限启用线程,但是问什么就是不会退出呢???而从组件服务中授权的线程,就能退出线程呢???希望高人再指点指点吖
      

  8.   

    用System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) 方法释放所有生成的application, workbook对象。可以参照
    http://www.codeproject.com/vb/net/ReleaseExcelObject.asp
      

  9.   

    我碰到过这样的错误,有一次是因为<identity impersonate="true"/>和配置DCOM这两种方法只能用一种,另外我用EXCEL处理完之后在另一个函数里调GC.Collect(),这样就退出了
      

  10.   

    web.config中加入<identity impersonate="true"/>节点:模拟但是无显式凭据,默认权限为进程的读访问权限未加入<identity impersonate="true"/>节点:默认权限为 Everyone 组的成员访问权限
      

  11.   

    我是广州的程序员哦,做网络监控和网站的平时可以多多交流
    Msn:[email protected]