2012-12-04 20 views
5

ठीक है तो मेरे पास एक वेबसाइट है जो एएसपीनेट एमवीसी का उपयोग करती है, मेरी समस्या एंटिटी फ्रेमवर्क के साथ है। मैंने सभी संदर्भ जोड़े और इसे अपनी स्थानीय मशीन पर चलाने के लिए मिला लेकिन जब मैं इसे प्रकाशित करता हूं तो मुझे निम्न त्रुटि मिलती है।इकाई फ्रेमवर्क स्थानीय सर्वर पर काम करता है लेकिन रिमोट

System.InvalidOperationException: इकाई की रूपरेखा प्रदाता प्रकार 'System.Data.SqlClient के लिए' System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, संस्करण = 6.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089 ' 'ADO.NET प्रदाता लोड नहीं किया जा सका। सुनिश्चित करें कि प्रदाता असेंबली चल रहे एप्लिकेशन के लिए उपलब्ध है। अधिक जानकारी के लिए http://go.microsoft.com/fwlink/?LinkId=260882 देखें।

मैंने अपने संदर्भों की दो बार जांच की है और मेरे पास EntityFramework.SqlServer और System.Data दोनों मेरे प्रोजेक्ट में जोड़े गए हैं। कनेक्शन स्ट्रिंग जो मैं डेटा बेस से कनेक्ट करने और सेवा प्रदान करने की घोषणा करता हूं, नीचे दी गई है।

<connectionStrings> 
<add name="[dataConnection]" connectionString="Data Source=[ip of host machine];Database=[name];UID=[user];pwd=*******;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

नाम हम सिर्फ डेटा बेस के नाम है, यह भी मेरी web.debug.config में प्रयोग किया जाता है

<connectionStrings> 
<add name="[dataconnection]" 
    connectionString="Data Source=.;Database=[name];UID=[user];pwd=*******;MultipleActiveResultSets=True;" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
    </connectionStrings> 

मैं बहुत इस पूरे बात करने के लिए नया हूँ और बस किसी सौंप दिया गया था elses कोड इसलिए मैं प्रवाह पर सीखने की कोशिश कर रहा हूं। यह मेरा पहला मुठभेड़ है इसलिए किसी भी दिशा की सराहना की जाएगी।

उत्तर

7

मुझे अपने एकीकरण परीक्षण असेंबली में एक ही समस्या थी (मैं इसके लिए एमएस विजुअल स्टूडियो यूनिट परीक्षण फ्रेमवर्क का उपयोग कर रहा हूं) और मैंने इसे ईस्ट असेंबली को .testsettings फ़ाइल में तैनाती आइटम में जोड़कर हल किया है।

  1. मैं एफई स्थापित किया है 6 अल्फा पैकेज प्रबंधक कंसोल का उपयोग कर का उपयोग करते हुए: स्थापित-पैकेज EntityFramework -पूर्व

यहाँ मेरी app.config

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
     <configSections> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </configSections> 
     <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
     </entityFramework> 
    </configuration> 

मेरे कनेक्शन स्ट्रिंग (i है मैं इसे कोड में स्थापित कर रहा हूं): server=.\SIN;initial catalog=IntegrationTests;User ID=user;Password=pass;MultipleActiveResultSets=true;

  1. मैंने ईएफ असेंबली संदर्भ गुणों को देखने के लिए देखा है कि वे "स्थानीय कॉपी करें" = सही पर सेट हैं या नहीं। और आखिरकार मैंने टेस्ट रिसेट्स /../ आउट फ़ोल्डर की जांच की है और पाया है कि वहां कोई एंटिटीफ्रेमवर्क नहीं है। एसक्यूएल सर्वर असेंबली (एसक्लप्रोवाइडर सर्विसेज क्लास इसमें रहता है)।

  2. तो मैं सिर्फ दोनों एफई 6 विधानसभाओं मेरी तैनाती आइटम शामिल कर लिया है और अब सब कुछ ठीक है deployment items

आप अपने वेब सर्वर निर्देशिका देखने के लिए करने के लिए EntityFramework.SqlServer विधानसभा कॉपी करने के लिए कोशिश कर सकते हैं यह काम करता हैं।

शायद this link उपयोगी

पी हो सकता हैएस:

सुनिश्चित करें कि आपके पास System.Data.Entity का संदर्भ नहीं है, क्योंकि आप जीएसी से एक का उपयोग करेंगे। जब आप उन्हें Nuget के साथ स्थापित करते हैं तो ईएफ़ 6 अल्फा असेंबली जीएसी में स्थापित नहीं होती है। लक्ष्य ढांचा .NET 4.5 होना चाहिए।

मेरे खराब अंग्रेजी के लिए खेद है।

+0

यह मेरे लिए काम करता है, मुझे लगता है कि जब मैंने अपनी साइट प्रकाशित करने की कोशिश की तो EntityFrameworkSqlServer.dll गायब था। – Ken

0

एक प्रश्न: कौन सा ईएफ संस्करण?

अपने आईआईएस पूल .NET संस्करण की जांच करें ... यह आपके प्रकाशित प्रोजेक्ट के .NET संस्करण को इंगित करने वाला एक होना चाहिए ... ईएफ की असेंबली विंडोज निर्देशिका के तहत .NET फ्रेमवर्क फ़ोल्डर में होना चाहिए (AKA जीएसी)

+0

संस्करण जो मैं अभी उपयोग कर रहा हूं वह 6.0.0.0 है। यह EntityFramework और EntityFramework दोनों के लिए है। SQL सर्वर – Ken

+0

कोई ईएफ 6.0 नहीं है - जहां तक ​​मुझे पता है ... हालांकि, आईआईएस 6 है। आईआईएस पूल देखें जो आपकी परियोजना को चलाता है। आईआईएस 6 का डिफ़ॉल्ट .NET 2.0 चलाने के लिए है और शायद यही कारण है कि ईएफ असेंबली संस्करण पहचाना नहीं गया है। – lionheart

+0

रन नेटवर्क संस्करण संस्करण संस्करण 4.0 है। ईएफ ढांचा वास्तव में 6.0 अल्फा -1 है। यह मुझे समझने वाले दृश्य स्टूडियो 2012 के साथ जारी किया गया। अगर मैं इस जानकारी में गलत हूं तो मुझे बताएं, यह वही है जो मैं ढूंढ पाया। भले ही मैंने जो भी कहा वह सच है, तो नेट 4.0 और आईआईएस 7 के बीच कोई दिक्कत होगी? (आईआईएस 7 सर्वर क्या चल रहा है)। इसके अलावा पृष्ठ स्वयं चलाने में सक्षम है, जब मैं डीबी का उपयोग करने का प्रयास करता हूं तो यह केवल उस त्रुटि को प्रदर्शित करता है। मतलब जब मैं – Ken

संबंधित मुद्दे