2013-10-07 2 views
0

SQL Server CE 4.0으로 ASP.NET 웹 페이지 사이트에서 작업하고 있습니다.오류 받기 0004 : System.Data.SqlServerCe.Entity.dll을로드 할 수 없습니다. SQL Server Compact 다시 설치

SQL Server CE 4.0 데이터베이스가 정상적으로 작동한다고 생각합니다. Entity Framework가 있거나없는 내 dev 컴퓨터에서 아무 문제없이 연결할 수 있습니다. 내가 서버에 사이트를 밀어되면

,이 연결 문자열을 사용하여 미세 엔티티 프레임 워크없이 연결할 수 있습니다 :

<add name="StarterSite" 
    connectionString="Data Source=|DataDirectory|\StarterSite.sdf" 
    providerName="System.Data.SqlServerCe.4.0" /> 

내 엔티티 프레임 워크 연결 문자열은 다음과 같습니다

<add name="StarterSiteEntities" 
    connectionString="metadata=res://*/App_Code.ProductModel.csdl|res://*/App_Code.ProductModel.ssdl|res://*/App_Code.ProductModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\StarterSite.sdf&quot;" 
    providerName="System.Data.EntityClient" /> 

EF 데이터베이스 호출을 시도 할 때 다음 오류 메시지가 나타납니다.

스택 추적 :

[MetadataException : 지정한 스키마가 유효하지 않습니다. 오류 : App_Code.ProductModel.ssdl (2,88) : 오류 0004 : System.Data.SqlServerCe.Entity.dll을로드 할 수 없습니다. SQL Server Compact를 다시 설치하십시오. ] System.Data.Metadata.Edm.Loader.ThrowOnNonWarningErrors() 8,610,213 System.Data.Metadata.Edm.Loader.LoadItems (IEnumerable을 1 xmlReaders, IEnumerable sourceFilePaths 1) 189 System.Data.Metadata.Edm.StoreItemCollection.Init (IEnumerable을 1 xmlReaders, IEnumerable 1 filePaths, 부울 throwOnError, DbProviderManifest & providerManifest, DbProviderFactory & providerFactory, 문자열 & providerManifestToken, Memoizer 2& cachedCTypeFunction) +182 System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable 1 xmlReaders, IEnumerable을 1 filePaths) +244 System.Data.Metadata.Edm.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader) +90 System.Data.Metadata.Edm.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry) +16 System.Data.Metadata.Edm.MetadataCache.LoadItemCollection(IItemCollectionLoader 1 itemCollectionLoader, T 항목) 163 System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections (문자열 cacheKey , MetadataArtifactLoader loader, EdmItemCollection, edmItemCollection, Object & entryToken) +191 System.Data.EntityClient.EntityConnection.LoadStoreItemCollections (의 MetadataWorkspace 작업 공간, DbConnection storeConnection, DbProviderFactory 공장, DbConnectionOptions의 connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader) 246 System.Data.EntityClient.EntityConnection.GetMetadataWorkspace (부울 initializeAllCollections) 586 시스템. Data.EntityClient.EntityConnection.InitializeMetadata (DbConnection newConnection, DbConnection originalConnection, 부울 closeOriginalConnectionOnFailure) +75 System.Data.EntityClient.EntityConnection.Open() 150 System.Data.Objects.ObjectContext.EnsureConnection() +75 시스템. Data.Objects.ObjectQuery 1.GetResults(Nullable 1 forMergeOption) +41 System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +36 System.Linq.Enumerable.FirstOrDefault(IEnumerable 1 원본) +152 System.Data.Objects.ELinq.ObjectQueryProvider.b__1 (IEnumerable 1 sequence) +41 System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable 쿼리, Expression queryRoot) +59 System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute (식) +133 System.Data.Entity.Internal.Linq.DbQueryProvider.Execute (식 표현) +87 System.Linq.Queryable.FirstOrDefault (실행기에 IQueryable 1 source) +251 ASP._Page_admin_ruf_Admin_Product_Edit_cshtml.Execute() in c:\sites\www.foosite.org\Admin-RUF\Admin-Product-Edit.cshtml:25 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198 System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable 1) +69 System.Web.WebPages.WebPage.ExecutePageHierarchy () +131 System.Web.WebPages.StartPage.RunPage() +17 System.Web.WebPages.StartPage.ExecutePageHierarchy() +64 System.Web.WebPages.WebPageBase.ExecutePageHierarchy (WebPageContext pageContext, TextWriter 작성기, WebPageRenderingBase startPage) +78 System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal (HttpContextBase httpContext) +116

버전 정보 : Microsoft .NET Framework 버전 : 4.0.30319; ASP.NET 버전 : 4.0.30319.18044


무엇이 잘못 되었나요?

+0

VS에서 SQL 탭으로 이동하여 연결 문자열을 복사하여 붙여 넣으십시오. – Tico

+0

응용 프로그램과 함께 System.Data.SqlServerCe.Entity.dll을 배포하십시오. – ErikEJ

+0

@ErikEJ Thx가 응답합니다. 어디에서 System.Data.SqlServerCe.Entity.dll을 배포 할 수 있습니까? 내 bin 폴더에 없어요. –

답변

1

응용 프로그램과 함께 System.Data.SqlServerCe.Entity.dll을 배포합니다. C : \ Program Files (x86) \ Microsoft SQL Server Compact Edition \ v4.0 \ Desktop \ System.Data.SqlServerCe.Entity on에 있습니다. 내 PC.