Firebird 및 ASP.NET 웹 서비스
-
21-12-2019 - |
문제
ASP.NET 웹 사이트에 삽입 된 Firebird를 사용하고 있습니다.VS2010을 관리자로 실행하면 데이터베이스를 성공적으로 호출 할 수 있습니다. 다른 사용자로 실행하면이 오류가 발생합니다.
System.IO.IOException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at System.Reflection.Emit.ModuleBuilder.SavePEFile(RuntimeModule module, String fileName, Int32 entryPoint, Int32 isExe, Boolean isManifestFile)
at System.Reflection.Emit.ModuleBuilder.Save(String fileName, Boolean isAssemblyFile, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)
at System.Reflection.Emit.AssemblyBuilder.SaveNoLock(String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)
at System.Reflection.Emit.AssemblyBuilder.Save(String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)
at System.Reflection.Emit.AssemblyBuilder.Save(String assemblyFileName)
at FirebirdSql.Data.Client.Native.FbClientFactory.CreateInstance(TypeBuilder tb)
at FirebirdSql.Data.Client.Native.FbClientFactory.GenerateFbClient(String dllName)
at FirebirdSql.Data.Client.Native.FbClientFactory.GetFbClient(String dllName)
at FirebirdSql.Data.Client.Native.FesDatabase..ctor(String dllName, Charset charset)
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
at FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create()
at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut()
at FirebirdSql.Data.FirebirdClient.FbConnection.Open()
.
IIS에 서비스를 배포했지만 호출 할 때 동일한 오류가 발생합니다.또한 관리자 계정에서 작동하려면 Windows / System32에서 fbemdeb.dll을 복사해야했습니다.
콘솔 응용 프로그램 내에서 DB와 동일한 호출을 해왔으며 모든 사용자 계정에서 작동합니다.웹 서비스에만이 문제가 있습니다.
모든 제안? 나는 Firebird 2.5
를 사용하고 있습니다해결책
권한 문제와 같습니다.앱 풀을 실행하는 사용자는 아마도 디스크에 저장할 수 없습니다.이것은 당신이 보낸 스택 추적에 의해 제안됩니다 :
at System.Reflection.Emit.AssemblyBuilder.Save(String assemblyFileName)
.
Firebird API는 런타임에 어셈블리를 구축하기 위해 몇 가지 기술을 사용합니다.API 문서를보고 임시 디렉토리를 구성하는 방법이 있는지 확인하십시오.
제휴하지 않습니다 StackOverflow