![在 c:\users\temp.DOMAIN.00x 中创建的临时文件存在问题](https://linux22.com/image/607285/%E5%9C%A8%20c%3A%5Cusers%5Ctemp.DOMAIN.00x%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%9A%84%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6%E5%AD%98%E5%9C%A8%E9%97%AE%E9%A2%98.png)
我正在尝试让用户连接到服务器上共享的 Excel 文件。用户可以访问该共享。使用 Procmon,我检测到 OleDB 在此位置创建了一个临时文件:
c:\users\temp.<DOMAIN>.00x
但默认情况下用户无权访问此文件夹,因此他们会收到来自 OleDB 的可怕“未指定错误”。据说,可以通过在 Web.config 文件中进行以下更改来缓解此问题:
<identity impersonate="true" />
到
<identity impersonate="false" />
但是,这是 SharePoint 服务器,因此我无法在不对 SharePoint 产生负面影响的情况下进行该更改。我想执行以下操作之一来缓解创建额外临时文件的问题:
- 通过 GPO、设置或脚本自动授予用户对新临时目录的读写权限
- 修复服务器,使得这些临时目录首先不会被创建(这是首选,但从我的搜索来看似乎要困难得多)
如果您能推荐更好的解决方案,我当然愿意考虑其他解决方案。另外,我提前为我的无知道歉,我并不是真正的服务器管理员。感谢您的关注!
答案1
发生这种情况通常是因为一种奇怪的情况,即应用程序池用户创建了用于编辑的临时文件,而实际用户无权访问该文件。
这就是为什么当模拟设置为 false 时,将使用应用程序池用户身份并可以访问文件 - 但是当模拟设置为 true 时,将使用用户帐户,而该帐户无权访问这些文件。
为每个人设置对临时文件父目录的写入权限应该可以解决这个问题。我想这里面有一些单独的安全问题,但对于你的情况来说这似乎不是问题(正如你建议的那样)。