zhuzhenhua_vip 2022-12-02 11:06 采纳率: 0%
浏览 38

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权限没用,网上办法试了一遍,无法解决

  • 写回答

1条回答 默认 最新

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

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

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

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

    评论

报告相同问题?

问题事件

  • 创建了问题 12月2日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行