zhuzhenhua_vip 2022-12-02 03:06 采纳率: 0%
浏览 48

c# 导出Excel时报:对路径“C:\Windows\TEMP\yfcf5laj.0.cs”的访问被拒绝

问题遇到的现象和发生背景

c# 导出Excel时报:对路径“C:\Windows\TEMP\yfcf5laj.0.cs”的访问被拒绝
本地开发环境没问题,发布到生产环境却报错

用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容

对路径“C:\Windows\TEMP\yfcf5laj.0.cs”的访问被拒绝
异常详细信息: System.UnauthorizedAccessException: 对路径“C:\Windows\TEMP\yfcf5laj.0.cs”的访问被拒绝。

ASP.NET 无权访问所请求的资源。请考虑对 ASP.NET 请求标识授予访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 和 IIS 7 上为网络服务,在 IIS 7.5 上为配置的应用程序池标识)。如果应用程序正在通过 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

要将 ASP.NET 访问权限授予某个文件,请在文件资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

我的解答思路和尝试过的方法

使用网上说的给C:\Windows\TEMP文件夹everyone权限没用,网上办法试了一遍,无法解决

  • 写回答

2条回答 默认 最新

  • 憧憬blog 2023-05-18 01:39
    关注

    参考GPT和自己的思路:此问题可能是因为在生产环境下,ASP.NET应用程序池的进程标识没有被授予对C:\Windows\TEMP文件夹的写入权限所导致。您可以尝试以下解决方法来解决该问题:

    1. 在资源管理器中右击"C:\Windows\TEMP"文件夹,选择"属性",切换到"安全"选项卡,然后点击"编辑",添加ASP.NET应用程序池的进程标识(例如"Network Service")并授予读写权限。
    2. 如果您的应用程序已经知道要将Excel文件写入哪个目录,可以使用另一个具有写入权限的文件夹,例如应用程序的根目录下的一个文件夹。
    3. 如果您的应用程序需要在运行时动态生成一个唯一的文件名,则可以尝试使用应用程序的App_Data文件夹,该文件夹具有对ASP.NET应用程序池的进程标识的写入权限。

    希望这些解决方法能够帮助您解决问题!

    评论
  • zhuzhenhua_vip 2025-03-12 07:05
    关注

    检查是哪个程序占用了C:\Windows\TEMP这个文件夹,然后停止该服务

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部