2009-11-23 2 views
0

기존 Excel 2007 스프레드 시트를 수정하는 Microsoft.Office.Interop.Excel을 통합 한 .NET 2008 응용 프로그램을 작성했습니다. WinXP 개발 컴퓨터에서 완벽하게 작동합니다. 나는 마이크로 소프트 웹 서버 2008 응용 프로그램을 업로드 할 때Windows Server 2008 (웹 에디션)에서 프로그래밍 방식으로 파일 수정

, 그것은 파일을 열고 파일에서 읽지 만 앱에서 파일을 저장하려고 할 때,이 예외가 발생합니다 :

"System.Runtime합니다. InteropServices.COMException (0x800A03EC) : 'july2009.xlsx'는 읽기 전용이므로 복사본을 저장하려면 확인을 클릭 한 다음 다른 이름으로 저장 대화 상자에 통합 문서를 제공하십시오. "

파일이 읽기 전용이 아니며 다른 사용자 나 앱에서 파일을 열 수도 없습니다. app과 Excel 파일은 모두 D :(데이터 전용) 드라이브에 있습니다. 내 첫 번째 본능은 파일 권한을 살펴 보는 것이 었습니다. 그 밖의 아무것도 작동하지 않을 때, 필자는 문자 그대로 임시 그룹을 생성하고 모든 사용자 및 보안 엔티티를 추가하고 전체 D : 드라이브에 대한 그룹 전체 권한을 부여했습니다. 불운.

그런 다음 관리자 권한으로 내 앱을 실행하여 권한을 수동으로 올리려고했습니다. 불운.

마지막으로 파일을 내 XP 개발 컴퓨터에 복사하고 거기에서 응용 프로그램을 실행했습니다. 물론 완벽하게 작동했습니다.

누구든지 내 프로그램에 Server 2008의 파일을 편집 할 수있는 권한을 부여 할 수 있습니까?

감사합니다.

+0

어떤 유형의 응용 프로그램입니까? WPF/WinForms, 웹, 윈도우 서비스, ...? –

+0

WinForms - 스프레드 시트에서 반복적 인 작업을위한 GUI를 제공합니다. – Tom

답변

0

응용 프로그램이 Process Explorer from Microsoft/SysInernals과 같은 util을 사용하여 실행하는 데 사용하는 권한을 검사 해보십시오. 애플리케이션이 일부 사용자와 함께 실행되고 있지만 UAC과 같은 메커니즘이 권한을 낮추는 지 확인할 수 있습니다. 그렇다면 응용 프로그램이 UAC를 지원하도록해야 할 수도 있습니다.

Process Monitor을 사용하여 파일에 대한 액세스가 시도되는 방식과 WRITE 호출이 실패하는 이유를 이해할 수도 있습니다. 때때로 COMExceptions의 오류 메시지가 오도 된 것일 수 있습니다.

행운을 빈다.

+0

제안 해 주셔서 감사합니다. PE와 PM에서 얻은 유일한 지식은 모든 프로세스가 내 사용자 이름으로 실행되고 있다는 것입니다 (저는 관리자 임). 나는 심지어 UAC를 완전히 무력화했습니다. 내 D : 드라이브가 OS에 의해 어떻게 든 "보호"될 수 있습니까? 재미있는 이벤트 중 하나 : WinServer에서 PE 및 PM 용으로 컴파일 된 HTML 도움말을 읽을 수 없습니다. UI를 열고 모든 내용을 보여 주었지만 HTML을 표시하지 않았습니다. "웹 페이지 탐색이 취소되었습니다."- 내 자신의 다운로드 폴더에서 실행 중이었지만. 이것이 관련 될 수 있습니까? – Tom

관련 문제