programing

Microsoft Office Excel에서 'c:\inetpub\wwwroot\' 파일에 액세스할 수 없습니다.타임시트\App_Data\템플릿xlsx'

showcode 2023. 4. 10. 22:25
반응형

Microsoft Office Excel에서 'c:\inetpub\wwwroot\' 파일에 액세스할 수 없습니다.타임시트\App_Data\템플릿xlsx'

제 코드는 다음과 같습니다.

Microsoft.Office.Interop.Excel.Application oXL = null;
Microsoft.Office.Interop.Excel.Sheets sheets;
Application excel = new Microsoft.Office.Interop.Excel.Application();


excel.Workbooks.Add(System.Reflection.Missing.Value);

/*
    * Here is the complete detail's about Workbook.Open()
    * 
    *  Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, 
    *  Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin,
    *  Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
    */

Workbook workbook = excel.Workbooks.Open(
    System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
    Missing.Value, true, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value);
sheets = workbook.Worksheets;

이 행의 경우:-

workbook = excel.Workbooks.Open(
    System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
    Missing.Value, true, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value);

Visual Studio(F5)에서 직접 실행되지만 IIS에서 액세스하려고 하면 동작하지 않습니다.다음과 같이 에러를 발생시킵니다.

Microsoft Office Excel에서 'c:\inetpub\wwwroot\' 파일에 액세스할 수 없습니다.타임시트\App_Data\템플릿xlsx'에는 몇 가지 이유가 있습니다.
• 파일 이름 또는 경로가 존재하지 않습니다.
• 다른 프로그램에서 파일을 사용하고 있습니다.
• 저장하려는 워크북의 이름이 현재 열려 있는 워크북과 동일합니다.

나는 그 일을 다음과 같이 시도했다.

  • 폴더와 파일이 존재하며, IUSR_##(IIS 사용자) 및 파일이 있는 폴더 내의 ASPNET 사용자에게 액세스 할 수 있습니다.
    • 컴포넌트 서비스(DCOM)에서 적절한 사용자에게 액세스 할 수 있습니다.

템플릿(.xlsx)이 존재하는 폴더에 모든 권한을 부여했습니다.

추천할 만한 게 있나요?

이것을 시험해 보세요.

  1. 디렉토리를 작성하다

C:\Windows\SysWOW64\config\system profile\데스크탑

(64비트 Windows 컴퓨터의 Excel/Office 32비트 버전용) 또는

C:\Windows\System32\config\systemprofile\데스크탑

(32비트 Windows 컴퓨터의 Office 32비트 버전 또는 64비트 Windows 컴퓨터의 Office 64비트 버전).

  1. 데스크톱 디렉토리의 경우 해당 사용자의 Full control 권한을 추가합니다(예를 들어 Win7 및 IIS 7 및 Default AppPool 설정 권한 ).

답변이 포함된 원본 게시물:

여기서 c:\windows\syswow64\config\systemprofile\desktop 디렉토리를 추가해도 기능하지 않습니다.

요점은 WOW64는 Windows 64의 약자로 실제로는 64비트 OS에서 실행되는 32비트 프로그램에 적용된다는 것입니다.

64비트 Excel이 설치되어 있기 때문에 적절한 디렉토리는 c:\windows\system32\config\systemprofile\desktop 이 됩니다.

저 같은 경우에는 여기에 제시된 제안대로 문제를 해결했습니다.

순서:

  1. 달려.dcomcnfg
  2. 콘솔 루트 \컴포넌트 서비스\컴퓨터\내 컴퓨터\이동합니다.DCOM 구성\Microsoft Excel 응용 프로그램
  3. Microsoft Excel 어플리케이션 우클릭
  4. 속성 선택
  5. ID 탭으로 이동
  6. 대화형 사용자를 선택합니다.

2 에서, 그를 찾을 수 없는 는, 2 를 실행해 .mmc comexp.msc /32dcomcnfg.

Eric Bonnot의 답변에 뭔가를 추가하고 싶습니다.이 답변은 관리자가 아닌 사용자가 PowerPoint PIA를 사용하여 IIS 서버에서 작업할 때 부분적으로 효과가 있었습니다.

pptx 파일에 미디어(그림 등)가 포함되어 있으면 열 수 없다는 것을 알았습니다.

"해크"는 시스템 프로파일/AppData 디렉토리의 Windows 사용자(피아를 사용하는 사용자)에게도 권한을 추가하는 것이었습니다.

도움이 되었으면 좋겠다

다음과 같은 해결책이 나에게 효과가 있었다.

디렉토리 C: 를 작성합니다.\Windows\SysWOW64\config\system profile\데스크탑

나는 이전에 이 문제를 시도했다가 해결했다.

솔루션:

특정 폴더(Sub 폴더 및 파일)에 풀 권한을 부여하고 정상적으로 동작하는 것을 확인했습니다.

WCF를 Windows 서비스로 포장했습니다.데스크탑 폴더를 작성하면, 어느 머신에서는 문제가 해결되었지만, 다른 머신에서는 문제가 해결되지 않았습니다.

최종적으로는 Windows Service가 머신의 액티브 유저 아래에서 동작하지 않는 것입니다.지금까지 머신상에서 액티브한 유저에게 서비스를 실행하도록 설정해 두면, 이 문제는 해결이 되었습니다.

의 조합만

  • 기존 데스크톱 폴더
  • 실제 사용자 계정으로 실행되는 서비스

나한테 잘 먹혔어느끼고 있어

이 문서에서는 완전한 해결 방법을 소개합니다.Excel 파일에 액세스할 수 없습니다.

제 경우, 주어진 솔루션 중 어느 것도 제대로 작동하지 않았습니다(DCOM 설정에서 사용자 변경, 데스크톱 폴더 생성, 사용자에게 완전한 액세스 권한 부여 등).

드디어 64비트 버전의 엑셀이 있다는 것을 알게 되었습니다.64비트 버전을 제거하고 32비트 버전의 Excel을 설치하면 이 오류에 대한 해결 방법이 해결되었습니다.이것은 Windows 10 및 Microsoft Office Excel 2010을 사용하는 경우입니다.

이것은 동작합니다.

excel.exe / safe

이는 일반 Excel 부팅과 동일한 오류를 발생시키지 않습니다.

excel.exe / 자동화

이 문제는 모든 네트워크 파일에 대한 모든 MS Office 2007 앱에서도 발생합니다.로컬 파일접근은 문제없습니다.

언급URL : https://stackoverflow.com/questions/7106381/microsoft-office-excel-cannot-access-the-file-c-inetpub-wwwroot-timesheet-app

반응형