Połączenie z bazą na hostingu

0

Cześć wszystkim. Mam spory problem, z którym nie mogę się uporać od kilku godzin, mianowicie wrzuciłem aplikację na serwer o nazwie smarterasp, skonfigurowałem wszystko tak jak pisało i w momencie próby wejścia na stronę dostaje taki błąd:

[Win32Exception (0x80004005): The system cannot find the file specified]

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]...

Przekopałem całego staka, wszystkie tematy odnośnie tego błędu ale nie mogę znaleźć rozwiązania, baza sql stoi, działa bo loguje się do niej webowo, connectionstring jest dobry na 99,9%, przepisany, przekopiowany ze strony. Wcześniej też stawiałem aplikację na tym serwerze ale takiego problemu nie miałem. Możecie mi podpowiedzieć co jeszcze powinienem sprawdzić?

ConnectionString wygląda tak -

  <connectionStrings>
    <add name="EFDbContext" connectionString="Data Source=SQLxxx.Smarterasp.net;Initial Catalog=xxx;User Id=xxx;Password=xxx;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Już naprawdę brak mi pomysłów co może być nie tak a wiem, że problem jest banalny, to pewnie tylko jakieś przeoczenie... Z góry bardzo dziękuje i pozdrawiam

1

Connection string dla EF wygląda trochę inaczej, np https://msdn.microsoft.com/en-us/data/jj556606.aspx. To co ustawiasz to provider connection string.

0

Niestety to też nie to, po kilku próbach doszedłem do tego, że nazwa contextu, którą definiowałem w web.config'u różniła się od nazwy klasy, która dziedziczyła po dbcontext i przez to aplikacja zamiast podłączyć się do bazy, którą jej wskazywałem przez connectionStringa tworzyła sobie nową o nazwie {projekt}.{klasa dziedzicząca po dbcontext} i dlatego aplikacja nie mogła się połączyć z istniejącą bazą... A, że nie mogła stworzyć sama bazy na hostingu to wyrzucała błędy. Po prostu dałem ciała przy definiowaniu contextu i nie pomyślałem, że to może być to. Po zmianie nazwy contextu aplikacja od razu wstała. Konkretnie to mowa o tym

  <connectionStrings>
    <add name="--->DBRepository<---" connectionString="xxxxxxx" providerName="System.Data.SqlClient" />
  </connectionStrings>

Ten name musi być nazwą klasy dziedziczącej po dbcontext. W tym cały problem...

1

Możesz zrobić partiala, który będzie definiował nowy konstruktor dla Twojego kontekstu, który jako parametr przyjmie nazwę ustawienia w konfiguracji i wywoła odpowiedni konstruktor klasy, po której dziediczy kontekst. Bo o dziwo klasa bazowa ma właściwy konstruktor.

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