2013-09-23 9 views
10

Wystąpił błąd podczas pobierania informacji o dostawcy z bazy danych. Może to być spowodowane przez Entity Framework za pomocą niepoprawnego ciągu połączenia. Sprawdź wewnętrzne wyjątki, aby poznać szczegóły i upewnij się, że ciąg połączenia jest poprawny.Dostawca nie zwrócił ciągu znaków obiektu ProviderManifestToken Entity Framework

Wyjątek wewnętrzny: {"The provider did not return a ProviderManifestToken string."}

Rozglądałem inne wątki, jak wiele z podobnych błędów, ale nie wydaje się znaleźć rozwiązanie.

Korzystam z VS2012 Professional i SQL Server 2012. Jestem w stanie połączyć się z serwerem przy użyciu Eksploratora serwerów za pomocą uwierzytelniania systemu Windows. Buduję aplikację formularzy internetowych z wieloma poziomami. Jedna z nich zawiera warstwę struktury Entity, która zawiera moją klasę Context.

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    </system.web> 

    <connectionStrings> 
    <add name="MYSQLSERVER" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=myComputer\MYSQLSERVER;Trusted_Connection=true"></add> 
    </connectionStrings> 
</configuration> 

Tak wygląda plik app.config w mojej bibliotece biblioteki obiektów Entity Framework.

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

Również próbowałem zmienić app.config typ defaultConnectionFactory do

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 

ale to niczego nie zmienia.

Nie jestem do końca pewien, co powoduje, że którekolwiek ze zmian, które wprowadzam, ma na mnie zły wpływ. Oczywiście mogłem znaleźć rozwiązanie online i poprawić mój problem, ale naprawdę chciałbym zrozumieć web.config i co to wszystko oznacza. Oprócz znalezienia rozwiązania tego problemu, czy ktoś może wskazać mi właściwy kierunek do nauki web.configs?

Dziękujemy za pomoc.

+0

Tak, otrzymywałem to i najwyraźniej po prostu nazwa serwera nie była poprawna. –

Odpowiedz

3

Naprawiłem to.

Wystarczy wpisać "." dla lokalnego komputera w źródle danych w następujący sposób:

<add name="MYSQLSERVER" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=.\MYSQLSERVER;Trusted_Connection=true"></add>  
</connectionStrings> 
5

W moim przypadku była to moja instancja SQL Server, która nie była uruchomiona. Po prostu uruchomiłem usługę i wszystko działało dobrze. Mam nadzieję, że to pomoże komuś w drodze.

0

..i WRESZCIE (?!?) Nie zapomnij zbudować projektu z "Preferuj 32-bitowe" zaznaczone, ponieważ wyeliminuje to ZNANA BŁĄD, który generuje ten komunikat o błędzie (który ma wewnętrzny komunikat wyjątku = ' Arithemtic przepełnienie ")

1

i spotkać ten problem, gdy próbuję połączyć się z MySQL, powodem jest to, że zapomnij dodać "hasło" w "connectionStrings"

+0

Napotkałem ten sam problem i rozwiązałem go, gdy zobaczyłem twoją podpowiedź, zapomniałem hasła, ciąg połączenia z usługodawcą nie został dołączony. po prostu miał symbol zastępczy, który musiałem zastąpić moim hasłem :-) –

2

Oto kolejna możliwa przyczyna:
mam zarówno mój (ASP.NET) serwer HTTP i serwer MySQL/Aurora na AWS (zrozumiał, że AWS nie był częścią komentarzy OP).
Adres IP mojego pulpitu (w rzeczywistości naszego budynku) został umieszczony na białej liście w grupie bezpieczeństwa serwera MySQL/Aurora, więc wszystko działało idealnie dla rozwoju.
Jednak adres IP serwera ASP.NET był nie dodany do białej listy dla instancji MySQL/Aurora, dlatego żądanie połączenia EF serwera ASP zostało odrzucone, a powodował, że wyjątek odnotowano na górze tego wątku.
Ezoteryk, ale może to pomaga komuś.

+0

Sam miałem ten sam problem – dlchambers

0

W moim przypadku paramter był v12.0, zmieniłem na V11.0 i pracuje

0

miałem ten sam problem, ponownie zainstalować Npgsql z menedżera pakietów załatwił sprawę. Wydaje się, że jest to problem z wersjonowaniem.

Powiązane problemy