FirebirdとASP.NET Webサービス
-
21-12-2019 - |
質問
ASP.NET Webサイトに埋め込まれた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と同じ呼び出しをし、それはすべてのユーザーアカウントに対して機能します。私はWebサービスに問題があります。
提案? 私はFirebird 2.5
を使っています解決
許可の問題のように聞こえます。アプリプールを実行するユーザーはおそらくディスク上で保存できません。これはあなたが送信したスタックトレースによって提案されています:
at System.Reflection.Emit.AssemblyBuilder.Save(String assemblyFileName)
.
は、実行時にアセンブリを構築するためにいくつかの技術を使用しているように見えます。APIのマニュアルを調べて、一時的なディレクトリやそのようなものを設定する方法があるかどうかを確認します。
所属していません StackOverflow