7

मैं एक बुनियादी एमवीसी 4 ऐप को तैनात करने की कोशिश कर रहा हूं जो विंडोज 7 की क्लीन इंस्टॉल पर एंटीटी फ्रेमवर्क 6 (कोड फर्स्ट) और एसक्यूएल कॉम्पैक्ट 4.0 का उपयोग करता है आईआईएस स्थापित के साथ (एमवीसी 4 और एसक्यूएल कॉम्पैक्ट 4.0 स्थापित नहीं है)।एएसपी.नेट एमवीसी 4 + इकाई फ्रेमवर्क 6 + एसक्यूएल कॉम्पैक्ट संस्करण 4.0 परिनियोजन स्थापित नहीं

  • EntityFramework (संस्करण 6.0.0-alpha2)
  • EntityFramework.SqlServerCompact (संस्करण 6.0.0-alpha2)
  • माइक्रोसॉफ्ट:

    मैं निम्नलिखित nuget संकुल डाटाबेस परियोजना पर स्थापित हो गया। AspNet.Providers (संस्करण 1.2)

  • Microsoft.AspNet.Providers.Core (संस्करण 1.2)
  • Microsoft.SqlServer.Compact (संस्करण 4.0.8876.1)

web.config में मैं निम्नलिखित config मिला:

<connectionStrings> 
    <add name="[Name]" connectionString="Data Source=|DataDirectory|[FileName].sdf" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

...................... 

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
    </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </providers> 
</entityFramework> 

बिन फ़ोल्डर (एसक्यूएल ce फ़ाइलों amd64 और 86 फ़ोल्डर में हैं:

  • [amd64]
  • [86]
  • Antlr3.Runtime.dll
  • DotNetOpenAuth.AspNet.dll
  • DotNetOpenAuth.Core.dll
  • DotNetOpenAuth.OAuth.Consumer.dll
  • DotNetOpenAuth.OAuth.dll
  • DotNetOpenAuth.OpenId.dll
  • DotNetOpenAuth.OpenId.RelyingParty.dll
  • EntityFramework.dll
  • EntityFramework.SqlServer.dll
  • EntityFramework.SqlServer.xml
  • EntityFramework.SqlServerCompact.dll
  • EntityFramework.SqlServerCompact.xml
  • EntityFramework.xml
  • Microsoft.Web.Infrastructure.dll
  • Microsoft.Web.WebPages.OAuth.dll
  • Newtonsoft.Json.dll
  • ShipMedProto.DB। dll
  • ShipMedProto.DB.pdb
  • ShipMedProto.Web.dll
  • ShipMedProto.Web.pdb
  • System.ComponentModel.DataAnnotations.dll
  • System.Data.DataSetExtensions.dll
  • System.Data.SqlServerCe.dll
  • System.Data.SqlServerCe.Entity.dll
  • System.Net.Http.Formatting ।dll
  • System.Web.Helpers.dll
  • System.Web.Http.dll
  • System.Web.Http.WebHost.dll
  • System.Web.Mvc.dll
  • System.Web। Optimization.dll
  • System.Web.Providers.dll
  • System.Web.Razor.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll
  • WebActivatorEx.dll
  • WebGrease.dll
  • WebMatrix.Data.dll
  • WebMatrix.WebData.dll

जब मैं करने के लिए तैनात स्वच्छ मशीन मुझे निम्न त्रुटि संदेश मिलता है:

अनुरोधित नेट फ्रेमवर्क डेटा प्रदाता ढूंढने में असमर्थ। इसे शायद स्थापित न किया जा सके।

मेरी देव मशीन पर यह ठीक काम कर रहा है। (मुझे एसक्यूएल सीई स्थापित है)

कोई संकेत क्या मैं गलत कर रहा हूं?

+0

सुनिश्चित करें कि सभी आवश्यक बाइनरी बिन फ़ोल्डर – ErikEJ

+0

पर तैनात हैं, मैंने इसे स्वीकार किया है। क्या आपको पता है कि sqlce dlls को bin -> x86 फ़ोल्डर – oskarkvamme

+2

में रखा जाना चाहिए हां, बिन/x86 फ़ोल्डर में x86 DLLs और bin/AMD64 फ़ोल्डर में x64 dlls। आपको एक डीबीप्रोवाइडर्स अनुभाग की भी आवश्यकता है, यहां मेरा ब्लॉग पोस्ट देखें: http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with।एचटीएमएल – ErikEJ

उत्तर

1

यह एक कॉन्फ़िगरेशन है जो मैं उन कार्यों का उपयोग कर रहा हूं।

मैं NuGet से परियोजनाओं को जोड़ दिया है: EntityFramework (6.0.1) EntityFramework.SqlServerCompact (6.0.1) Microsoft SQL सर्वर कॉम्पैक्ट संस्करण (4.0.8876.1)। ध्यान दें, मेरे पास यह असेंबली स्थानीय प्रतिलिपि बनाने के लिए ध्वजांकित नहीं है।

मैं निजी फ़ोल्डरों

स्थापित SQLCE 4 से फाइल जोड़ दिया है और फिर मैं अपने config सेट इस प्रकार है:

<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="SecureSend.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <runtime> 
    <loadFromRemoteSources enabled="true" /> 
    <ThrowUnobservedTaskExceptions enabled="true" /> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="bin"/> 
     <dependentAssembly> 
     <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="6.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" /> 
     <bindingRedirect oldVersion="0.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" /> 
    </providers> 
    </entityFramework> 
    <connectionStrings> 
    <add name="LocalUserContext" connectionString="Data Source=c:\temp\LocalUserDataStore.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 
    <system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SqlServerCe.4.0" /> 
     <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
    </DbProviderFactories> 
    </system.data> 
</configuration> 
5

मुझे लगता है कि आप वास्तव में क्या NuGet पैकेज का प्रबंधन कर रहा है क्या करना चाहते हैं जैसे कि आप EntityFramework के लिए SqlServerCompact समर्थन जोड़ते हैं। बस अपने संदर्भ और प्रबंधक NuGet संकुल पर राइट क्लिक करें। फिर संवाद में SqlServerCompact की खोज करें। आप इस देखना चाहिए:

enter image description here

इस जोड़ना बराबर तार कि ऊपर जवाब में थे जोड़ना चाहिए। मैं (यदि आप किसी एप्लिकेशन कर रहे हैं या app.config)

<entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
      <parameters> 
      <parameter value="System.Data.SqlServerCe.4.0" /> 
      </parameters> 
     </defaultConnectionFactory> 
     <providers> 
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
      <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" /> 
     </providers> 
</entityFramework> 
<system.data> 
     <DbProviderFactories> 
      <remove invariant="System.Data.SqlServerCe.4.0" /> 
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
     </DbProviderFactories> 
</system.data> 

क्षमा करें, मैं एक साल के बारे में देर हो रही है, लेकिन उम्मीद है कि इस मदद करता है किसी और web.config में इस के साथ समाप्त हो गया।

+0

ध्यान रखें कि यदि आप SQL CE स्थापित किए बिना किसी सर्वर पर तैनाती कर रहे हैं, तो आपको देशी बाइनरी को तैनात करने की भी आवश्यकता है। सबसे आसान तरीका है NuGet पैकेज नेटिवबिनेरी फ़ोल्डर से इन्हें कॉपी करने के लिए पोस्ट-बिल्ड चरण जोड़ना –