以编程方式修改 Windows Server 2008 上的文件(网络版)

发布于 2024-08-12 08:51:10 字数 635 浏览 0 评论 0原文

我编写了一个 .NET 2008 应用程序,其中包含 Microsoft.Office.Interop.Excel,它可以修改现有的 Excel 2007 电子表格。它在我的 WinXP 开发计算机上完美运行。

当我将应用程序上传到 Microsoft Web Server 2008 时,它会打开文件并从文件中读取数据,但是当应用程序尝试保存文件时,它会抛出此异常:

“System.Runtime.InteropServices.COMException (0x800A03EC): ' july2009.xlsx' 是只读的。要保存副本,请单击“确定”,然后在“另存为”对话框中为工作簿指定一个新名称。”

该文件不是只读的,也不会被任何其他用户或应用程序打开。 该应用程序和 Excel 文件均驻留在 D:(仅数据)驱动器上。 我的第一直觉是查看文件权限。当其他方法都不起作用时,我实际上创建了一个临时组,向其中添加了每个用户和安全实体,并授予该组对整个 D: 驱动器的完全控制权。运气不好。

然后我尝试通过以管理员身份运行我的应用程序来手动提升权限。运气不好。

最后,我将该文件复制到我的 XP 开发计算机上并在那里运行该应用程序。当然,它运行得很好。

谁能告诉我如何授予我的程序在 Server 2008 上编辑文件的权限?

谢谢!

I have written a .NET 2008 application, incorporating Microsoft.Office.Interop.Excel, that modifies an existing Excel 2007 spreadsheet. It works perfectly on my WinXP development computer.

When I upload the app to a Microsoft Web Server 2008, it opens the file and reads from the file, but when the app tries to save the file, it throws this exception:

"System.Runtime.InteropServices.COMException (0x800A03EC): 'july2009.xlsx' is read-only. To save a copy, click OK, then give the workbook a new name in the Save As dialog box."

The file is NOT read-only, nor is it opened by any other user or app.
The app and the Excel file both reside on the D: (data-only) drive.
My first instinct was to look at file permissions. When nothing else worked, I literally created a temporary Group, added EVERY user and security entity to it and granted the group full control of the entire D: drive. No luck.

Then I tried manually elevating the permission by running my app as administrator. No luck.

Finally, I copied the file to my XP development computer and ran the app there. Of course it worked perfectly.

Can anyone please tell me how to give my program permission to edit a file on Server 2008?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

朕就是辣么酷 2024-08-19 08:51:10

尝试使用 Process Explorer 等实用程序检查应用程序用于运行的权限来自 Microsoft/SysInernals。在那里,您可以看到虽然应用程序正在与某些用户一起运行,但像 UAC 这样的机制正在降低的特权。如果是这种情况,您可能需要使应用程序支持 UAC。

您还可以尝试使用进程监视器来了解如何访问正在尝试文件以及为什么 WRITE 调用失败。有时来自 COMExceptions 的错误消息可能会产生误导。

祝你好运!

Try inspecting the permissions that the application is using to run with an util such as Process Explorer from Microsoft/SysInernals. There you can see if although the application is running with some user, a mechanism like UAC is lowering the priviledges. If that's the case, you may need to make the application support UAC.

You may also attempt using Process Monitor to understand how the access to the file is being tried and why WRITE call is failing. Sometimes error messages from COMExceptions may be misleading.

Best of luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文