EntityException po migracji z VS 2008 do VS 2010

0

Witam! Po przekonwetowaniu pisanej aplikacji w VS2008 do VS2010, w czasie jej działania(po skompilowaniu pod VS 2010) nie mogę wyświetlić żadnego DataGrid'a z zawartoscią której kolwiek z tabel bazy danych podłączonej do projektu. Treść błędu brzmi

"Działanie podstawowego dostawcy nie powiodło się przy wykonywaniu operacji Open"

i podświetlona zostaje definicja BidningSource'a dla tej tabeli.

Piszę o tym tutaj, bo po przegladnięciu dokumentacji nic wiele to nie dało. Moze ktoś z was będzie wiedział jak to rozwiązać. Dane na temat podłączenia do bazy danych w właściwościach są zmienione a mimo to błąd nadal wystepuje. Musiałem je zmienić z racji że jeden projekt nad którym pracuje został przeniesiony z jednego komputera na drugi, który ma VS2010 a nie VS2008 i potrzebna była migracja.

Dorzucam jeszcze szczegóły tego błędu, któy w dalszym ciągu występuje:

System.Data.EntityException was unhandled
Message=Działanie podstawowego dostawcy nie powiodło się przy wykonywaniu operacji Open.
Source=System.Data.Entity
StackTrace:
w System.Data.EntityClient.Entity
Connection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
w System.Data.EntityClient.EntityConnection.Open()
w System.Data.Objects.ObjectContext.EnsureConnection()
w System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
w System.Data.Objects.ObjectQuery`1.GetIListSourceListInternal()
w System.Windows.Forms.ListBindingHelper.GetList(Object list)
w System.Windows.Forms.ListBindingHelper.GetList(Object dataSource, String dataMember)
w System.Windows.Forms.BindingSource.ResetList()
w System.Windows.Forms.BindingSource.set_DataSource(Object value)
w BudSystem.ClassLogowanie.getLogin() w C:\Users\Szymon\Desktop\praca inż\aplikacja_BudSystem\BudSystem\ClassLogowanie.cs:wiersz 15
w BudSystem.FormLogowanie.buttonZaloguj_Click(Object sender, EventArgs e) w C:\Users\Szymon\Desktop\praca inż\aplikacja_BudSystem\BudSystem\FormLogowanie.cs:wiersz 27
w System.Windows.Forms.Control.OnClick(EventArgs e)
w System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
w System.Windows.Forms.Control.WmMouseUp(Message&; m, MouseButtons button, Int32 clicks)
w System.Windows.Forms.Control.WndProc(Message&; m)
w System.Windows.Forms.ButtonBase.WndProc(Message&; m)
w System.Windows.Forms.Button.WndProc(Message&; m)
w System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&; m)
w System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
w System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&; msg)
w System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
w System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
w System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
w BudSystem.Program.Main() w C:\Users\Szymon\Desktop\praca inż\aplikacja_BudSystem\BudSystem\Program.cs:wiersz 19
w System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
w Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
w System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
w System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Data.SqlClient.SqlException
Message=Wystąpił błąd związany z siecią lub wystąpieniem podczas ustanawiania połączenia z serwerem programu SQL Server. Nie można odnaleźć serwera lub jest on niedostępny. Sprawdź, czy nazwa wystąpienia jest poprawna i czy konfiguracja serwera programu SQL Server zezwala na połączenia zdalne. (provider: Dostawca nazwanych potoków, error: 40 - Nie można otworzyć połączenia z programem SQL Server)
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
Class=20
LineNumber=0
Number=3
Server=""
State=0
StackTrace:
w System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
w System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
w System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
w System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
w System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
w System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
w System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
w System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
w System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
w System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
w System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
w System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
w System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
w System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
w System.Data.SqlClient.SqlConnection.Open()
w System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
InnerException:
0

Wystąpił błąd związany z siecią lub wystąpieniem podczas ustanawiania połączenia z serwerem programu SQL Server. Nie można odnaleźć serwera lub jest on niedostępny. Sprawdź, czy nazwa wystąpienia jest poprawna i czy konfiguracja serwera programu SQL Server zezwala na połączenia zdalne. (provider: Dostawca nazwanych potoków, error: 40 - Nie można otworzyć połączenia z programem SQL Server)

0

Przeinstalowanie SQL Server'a nic nie dało dalej to samo, bo rzeczywiście był czasami podobny błąd przy łączeniu sie z bazą w SQL Management
Studio.

0

Gdzie stoi sql server, gdzie aplikacja, na jakich maszynach?
Błąd pojawia się czasami? Czy zawsze? Czyli czasami działa a czasami nie? kiedy działa a kiedy nie?

0

Błąd o którym pisał smokind występował tylko czasami przy łączeniu się z serwerem przez SQL Management Studio, ale po przeinstalowaniu SQL Server'a tego błędu już nie ma.

Natomiast, błąd który jest tematem tego wpisu, występuje nadal.

SQL Server oraz Visual Studio są zainstalowane na tym samym komputerze.

0

Pokaż connection string używany w aplikacji.
Jaki rodzaj autentykacji wybrałeś podczas instalacji: windows czy mieszany?
Jak nazywa się instancja, czy jest domyślna?
Jakie rodzaje połączeń dopuszczasz, tylko pipe, czy coś modyfikowałeś?
Czy sql serwer chodzi na standardowym porcie 1433?
A najlepiej daj zrzut okienka z management studio tego gdzie ustawia się parametry połączenia.

0
  1. ConnectionString u mnie, wygląda tak:
    Data Source=localhost;Initial Catalog=BudSystem;Integrated Security=True
  2. Autentykacja Windowsowa
  3. Port domyślny
  4. Nazwa instancji to: SQLSERVER
  5. Rodzaju połączeń nie modyfikowałem więc pewnie jest pipe

zrzut ekranu:
user image

0

W SQL Server Configuration Manager włącz zarówno named pipe jak i TCP.
Tak na marginesie: Integrated Security może być true, ale zalecane jest SSPI (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx).

0

włączyłem named pipe i TCP - dalej to samo :/

0

Błąd leci zawsze?
Masz tylko tą jedną instancję sql servera zainstalowaną?
Możesz zrobić testowy program (konsolowy), który zwyczajnie użyje tego samego conn str i otworzy recznie SqlConnection i wykona jakiś prosty select przez SqlCommand?
Pod jaką wersję .net kompiluje się projekt?
Jaka wersja System.Data.dll jest w referencjach projektu?

0

błąd występuje przy każdorazowym łączeniu sie z bazą, czy to podczas logowania do aplikacji czy też jeśli chce wyświetlić okno z DataGrid'em zawierającym dane jakiejkolwiek tabeli z bazy

jest tylko, jedna jedyna instancja SQLSERVER

zrobiłem prosty programik któy wyświetla w DataGrid'zie zawartość jednej z tabel - też ten sam błąd

aplikacja jest robiona pod .NET 3.5

wersja SystemData.dll to 2.0

0

Problem rozwiązany!

Błąd był w pliku App.config projektu. ConnectionString, trzy razy definiowany z czego jeden wpis zawierał starą nazwę komputera, i wszystko się sypało po przeniesieniu.

0

To tak na przyszłość generalna zasada w życiu jak coś nie działa: zaczynasz sprawdzanie od najłatwiejszych rzeczy.
Czyli w tym przypadku, jakbyś od razu sprawdził swój connection string nie bujałbyś się tyle z tym. Poza tym exceptiony w dużej mierze dość dobrze tłumaczą przyczyny ich wystąpienia. I gdybyś dokładnie pochylił się nad komunikatem, który pokazał ci somekind, to conn str, sprawdzenie czy serwer działa powinno być podstawową czynnością.
Mam nadzieję że innych ta historia też czegoś nauczy :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1