2009-11-23 90 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

相關問題