2009-11-23 89 views
0

我已经编写了一个.NET 2008应用程序,它结合了用于修改现有Excel 2007电子表格的Microsoft.Office.Interop.Excel。它适用于我的WinXP开发计算机。以编程方式修改Windows Server 2008上的文件(网络编辑)

当我上传应用程序到Microsoft Web服务器2008年,它打开文件,并从文件中读取,但是当应用程序试图保存文件时,它抛出此异常:

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

该文件不是只读的,也不是由任何其他用户或应用程序打开。 应用程序和Excel文件都位于D:(仅数据)驱动器上。 我的第一本能是看文件权限。当没有其他工作的时候,我从字面上创建了一个临时组,将EVERY用户和安全实体添加到它,并授予组完全控制整个D:驱动器。没有运气。

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

最后,我将文件复制到我的XP开发计算机并在那里运行应用程序。当然,它完美地工作。

任何人都可以请告诉我如何让我的程序权限编辑Server 2008上的文件?

谢谢!

+0

它是什么类型的应用程序? WPF/WinForms,Web,Windows服务,...? – 2009-11-23 23:44:16

+0

WinForms - 它为电子表格上的一些重复性工作提供了一个GUI – Tom 2009-11-24 02:18:27

回答

0

尝试检查应用程序用于使用util的运行权限,例如Process Explorer from Microsoft/SysInernals。在那里你可以看到,尽管应用程序与某个用户一起运行,但像UAC这样的机制正在降低权限。如果是这种情况,您可能需要使应用程序支持UAC。

您也可以尝试使用Process Monitor来了解如何尝试访问文件以及为什么WRITE调用失败。有时来自COMExceptions的错误消息可能会引起误解。

祝你好运!

+0

感谢您的建议。我从PE和PM获得的唯一知识是所有进程都以我的用户名(我是Admin)运行。我甚至完全禁用了UAC,无济于事。我的D:驱动器能不能被操作系统“保护”? 一个有趣的事件:WinServer不会让我读PE和PM的编译HTML帮助。它打开了用户界面并显示了所有内容,但不会显示任何HTML - “导航到网页被取消” - 即使我在自己的下载文件夹中运行它。这可能是相关的吗? – Tom 2009-11-24 04:21:01

相关问题