이 드라이버를 사용하여 Excel 파일에 연결하기 때문에 새 서버에 응용 프로그램을 배포 할 때이 문제가 계속 발생한다는 것을 알고 있습니다. 그래서 여기 내가 최근에하고있는 일입니다.
Windows Server 2008 R2가 있으며 x64 비트 시스템 용 액세스 드라이버를 설치하고이 메시지를 제거하여 다른 메시지에 부딪히는 것을 매우 기쁘게합니다.
아래 의이 하나는 내 dev 컴퓨터에서 훌륭하게 작동하지만 서버에서 최신 ODBC 드라이버를 설치 한 후에도 오류가 발생합니다. 이것이 문제라고 생각하지만 이것이 내가 해결 한 방법입니다.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
아래와 같이 새 공급자로 교체합니다.
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
하지만이 작업을 수행 할 때주의해야 할 것이 있습니다. .xlsx 파일 확장명 및 Excel 버전 사용은 12.0입니다.
이 오류 메시지 "Error :"Could Not Foundable ISAM "을 찾은 후 다음과 같이 조금 변경하기로 결정했습니다.
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
그리고 네, 그 불쾌한 일을 끝 냈지만 여기에 다른 메시지가 있습니다 . Microsoft Access 데이터베이스 엔진은 'time_zone'파일을 열거 나 쓸 수 없습니다. 이미 다른 사용자가 독점적으로 열었거나 데이터를보고 쓸 수있는 권한이 필요합니다. 나는 그것을 해결하는 데 멀지 않다고 말합니다.
어쩌면 파일을 여는 또 다른 프로세스가있을 수 있으며 내가해야 할 일은 다시 시작하기 만하면 모든 것이 예상대로 원활하게 시작됩니다.