以编程方式修改Windows Server 2008上的文件(Web Ed。)

时间:2009-11-23 23:39:29

标签: visual-studio-2008 filesystems

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

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

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

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

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

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

任何人都可以告诉我如何授予我的程序在Server 2008上编辑文件的权限吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

您也可以尝试使用Process Monitor来了解如何尝试访问文件以及WRITE调用失败的原因。有时来自COMExceptions的错误消息可能会产生误导。

祝你好运!