基本的な .NET 4 Web サイトがあります。フォルダーに保存する SQL Server Compact データベースにマップする Entity Framework モデルが含まれていApp_Data
ます。
OData サービスを Web サイトに追加し、エンティティを公開しましたが、すべて正常に動作し、共有ホスティングに公開し、問題なくデータベースに読み書きできます。
Application_Start
ただし、 (小さな検索インデックスを作成するために)実行中にデータベースのデータにアクセスしたいと考えています。アプリケーション ライフ サイクルのその時点で Entity Framework コンテキストのインスタンスを作成すると、データベースにアクセスできないという例外がスローされます。ローカルでは問題なく動作しますが、共有ホスティングに公開するときの問題です。
通常、これは単純なアクセス許可の問題だと思いますが、OData サービスは正常に動作しているため、で実行されるコードとは異なるアクセス許可で実行する必要がありますApplication_Start
...
誰かがこれを以前に見たことがありますか、または何が起こっているのか考えがありますか?
System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
at System.Data.SqlServerCe.UnmanagedLibraryHelper..ctor(String fileName)
at System.Data.SqlServerCe.NativeMethodsHelper..ctor(String modulePath)
at System.Data.SqlServerCe.NativeMethods.LoadValidLibrary(String modulePath)
at System.Data.SqlServerCe.NativeMethods.LoadNativeBinariesFromPrivateFolder(String privateInstall)
at System.Data.SqlServerCe.NativeMethods.LoadNativeBinaries()
at System.Data.SqlServerCe.SqlCeConnection..ctor()
at System.Data.SqlServerCe.SqlCeProviderFactory.CreateConnection()
at System.Data.EntityClient.EntityConnection.GetStoreConnection(DbProviderFactory factory)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
at LDS.Model1Container..ctor() in *REMOVED*\LDS\Model1.Designer.cs:line 40
at LDS.Global.BuildIndex() in *REMOVED*\LDS\Global.asax.cs:line 38