2009-04-13 12 views
5

Pracowałem nad aplikacją ASP.NET WebForms, która wymagała funkcji logowania do konta (np. Rejestracja nowych użytkowników, zmiana haseł, odzyskiwanie haseł, profili, ról itd.) . Aby to zrobić, użyłem FormsAuthentication z domyślnym magazynem danych, który, ku mojemu zaskoczeniu, jest plikiem MDF w App_Data. Kiedy przychodzi czas na wdrożenie tej aplikacji. na żywo w Internecie, zamierzam użyć wspólnego hostingu, takiego jak GoDaddy lub inna tania firma.App_Data/ASPNETDB.MDF na Sql Server 2005 (lub 08)

Dla efektywności chciałbym przełączyć z tego MDF do rzeczywistego SQL Server 2005 lub 2008 (kto przy zdrowych zmysłach używa płaskich plików?). Jednak przy współdzielonym hostingu nie będę mógł uruchamiać żadnych programów takich jak aspnet_regsql.exe. Będę miał tylko jeden login i hasło do bazy danych SQL Server oraz konto FTP do katalogu głównego domeny. Brak zdalnego pulpitu MSTSC, brak dostępu do konsoli, brak majsterkowania w IIS itp.

Nie będę musiał przenosić żadnych kont użytkowników z ASPNETDB.MDF (strona będzie zaczynać się od zera użytkowników), ale jak mam przypuszczać :

1) Łatwo utworzyć tabele, procedury itp., Które Visual Studio automatycznie utworzone w ASPNETDB.MDF, gdy użyłem narzędzia do administrowania witryną sieci Web, aby rozpocząć korzystanie z FormsAuthentication?

2) Poproś dostawcę członkostwa SQL o podanie ciągu połączenia, który podaję, zamiast używać tego, co jest teraz, aby połączyć się z tym ASPNETDB.MDF. Do diabła, nie widzę żadnego ciągu połączenia z tym MDF w web.config; jak do cholery jest moja aplikacja. nawet go znaleźć? Machine.config? To byłaby zła decyzja, gdyby tak było. Ta bzdura za kulisami doprowadza mnie do szału.

Każda pomoc od kogoś, kto przeszedł tę migrację, byłby bardzo, bardzo doceniany!

Odpowiedz

4

.mdf nie jest płaskim plikiem. Jest to plik bazy danych ekspresowych SQL serwera.

Czasami lepiej jest nie jeździć Porsche na polnej drodze ...;)

Polecam coraz serwera dedykowanego, jeśli masz zamiar zorganizować internetową z poważnego zaplecza. Współdzielony hosting ma ograniczenia z punktu widzenia administratora.

za znalezienie tabel w SQL Express, znajduje się narzędzie o nazwie „studio zarządzanie”, który jest dostarczany z SQL Server EE, które powinny pozwolić, aby dostać się do tabel w .mdf itp

Oto przykład ciąg połączenia z .mdf w twoim web.config

<connectionStrings> 

     <add name="AddressBookConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\AddressBook.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/> 

</connectionStrings> 

Wczuję się w twoją frustrację. Utworzenie i hosting skomplikowanej strony internetowej nie jest łatwym zadaniem. Zwykle uruchamianie kreatorów w celu skonfigurowania aplikacji internetowej jest złym pomysłem, jeśli planujesz coś poważnego dla witryny, chyba że uczysz się o aplikacjach internetowych. Musisz przejść przez ten poziom abstrakcji i dowiedzieć się więcej o tym, jak ręcznie skonfigurować/przesłonić dostawcę członkostwa itp., Jeśli zamierzasz być profesjonalnie hostowany.

Mam nadzieję, że wskaże ci to właściwy kierunek. Powodzenia;)

+0

Powinieneś także mieć dostęp do mdf przez Visual Studio. – Konrad

1

MDF nie jest w rzeczywistości bazą danych plików płaskich, korzysta z silnika SQL Express z user instances, dzięki czemu może dołączać bazy danych w locie. Ten silnik jest ograniczoną wersją programu SQL Server, chociaż limity są dość wysokie, więc jeśli nie masz zbyt dużej ilości stron, nie będzie to problemem. Od here, limity są ...

  • Brak funkcji Enterprise Support
  • ograniczony do jednego CPU pamięć Jeden GB
  • limit dla baz danych puli bufora
  • posiada 4 GB Maksymalna wielkość

Ciąg połączenia powinien być w swoim pliku web.config wyszukaj "AttachDbFileName" (bez cudzysłowów). Aby uzyskać więcej informacji, patrz here.

Jeśli masz pełny kod SQL w swoim pakiecie hostingowym, zazwyczaj firma hostingowa udostępnia narzędzie internetowe do dołączania pliku MDF (określając jego ścieżkę) do pełnej instancji serwera SQL. Możesz po prostu zostawić plik MDF w folderze app_data (ponieważ folder ma zestaw uprawnień uniemożliwiający pobranie pliku db przez anonimowych użytkowników).

Po dołączeniu do użycia instancji SQL Server Standard Instance (lub innej wersji) zamiast instancji użytkownika SQL Express wystarczy zmienić ciąg połączenia w pliku web.config, aby wskazać instancję bazy danych skonfigurowaną za pomocą narzędzia WWW zamiast korzystać z funkcji Auto Attach w SQL Express.

Zobacz here dla instrukcji Godaddy.

3

Niektóre dane będą się różnić w zależności od dostawcy usług hostingowych, ale:

  1. Jeśli nie zostało to jeszcze zrobione, należy pobrać i zainstalować Microsoft SQL Server Management Studio Express

  2. Twój dostawca hostingu będzie musiał dostarczyć Ci informacje o połączeniu administratora, aby połączyć się z instancją serwera sql. Za pomocą tych informacji sprawdź, czy możesz się połączyć za pomocą MSSMSE. Jeśli nie możesz, reszta nie będzie miała znaczenia.

  3. Przejdź do tego weblog i postępuj zgodnie z instrukcjami, aby utworzyć wymagane skrypty bazy danych, aby przenieść bazę danych do produkcji. Te skrypty można uruchamiać w oknie zapytania MSSMSE.

  4. Zazwyczaj ciąg połączenia będzie przechowywany w pliku Web.Config. Ciągi połączenia. Nie będziesz chciał używać stylu "AttachDbFilename =", jeśli, jak mówisz w swoim pytaniu, przeniosłeś się do pełnego SQL Server. Twój ciąg połączenia będzie wyglądać mniej więcej tak:

    < dodaj name = "mojaConnectionName" connectionString = "Źródło danych = myServerAddress; Initial Catalog = myDataBase; User Id = myUsername; Password = myPassword;" >

-2

Jest to bardzo proste do zrobienia, jeśli zaczynają z nowymi danymi

wpadłem „C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ a spnet_regsql -C * Źródło danych = localhost; Initial Catalog = MYDB; Persist Security Info = True; User ID =; Password = **; " * -A all ", aby dołączyć tabele członkostwa ASP.NET i sprocs do bazy danych mojego wyboru.Jeśli to zrobisz ..zamierzasz nadpisać domyślny łańcuch połączeń LocalSQLServer lub nie znajdziesz takiego pliku w web.config twojego bolenia.Strona netto

<connectionStrings> < clear/> < dodać name = "LocalSQLServer" connectionString = "Data Source = localhost; Initial Catalog = MojaBD; Utrzymują Bezpieczeństwo informacji = True; User ID = **; Password = * ***; " providerName = "System.Data.SqlClient"/>

+0

Czy nie przeczytałeś wszystkiego w pytaniu? Cytat: * Nie będę mógł uruchomić żadnych programów, takich jak aspnet_regsql.exe *. – awe

+0

Jeśli zaczynasz od NOWYCH danych, możesz uruchomić plik aspnet_regsql.exe PRZED przesłaniem go do programu godaddy. Myślę, że zapomniałem to dodać. – Paully

4

Ten plik MDF jest bazą danych SQL Server. Wszystkie wersje SQL Server (z wyjątkiem CE) używają tego samego formatu pliku, więc MDF może być otwarty przez dowolny inny serwer SQL przy użyciu sp_attach_db lub SSMS, patrz How to: Attach a Database (SQL Server Management Studio).. Po dołączeniu do serwera SQL SSMS może wykonać skryptowanie całej bazy danych, patrz: How to: Generate a Script (SQL Server Management Studio). Można to również zrobić programowo, używając obiektu SMO Scripter. Skrypt SSMS będzie zawierał całą tabelę, indeks, procedurę i wszystkie inne obiekty w bazie danych. Istnieje również Import and Export Wizard in SSMS i można go użyć do eksportu zawartości tabel (dowolnych danych) do pliku CSV, a następnie zaimportować ten plik CSV do hostowanej bazy danych, ale kreator importu/eksportu jest dość złożony (korzysta z SSIS).

Inną alternatywą eksportu danych jest użycie narzędzia bcp, patrz Bulk Import and Bulk Export Operations.

Zasadniczo można wykonać wszystkie te operacje, używając instancji SQL Server Express w środowisku VS, używając narzędzi wiersza polecenia, takich jak sqlcmd i bcp, i być może napisanie własnej aplikacji SMO Scripter w celu wyeksportowania schematu bazy danych. Wymaga to jednak pewnego poziomu doświadczenia. Łatwiej będzie mieć dostęp do w pełni gotowego Managent Studio, aby zachować wszystkie dane do importu na swojej stronie hostingowej.

Nie zapomnij skontaktować się ze swoim dostawcą, jeśli pozwala przywrócić lub dołączyć własną bazę danych, możesz odejść łatwo, wystarczy skopiować plik do dostawcy.

Należy pamiętać, że plik MDF będzie można dołączyć do serwera SQL o wersji co najmniej takiej, jak ta, którą utworzyłeś. Jesteś środowiskiem VS zawierającym SQL Server, prawdopodobnie o nazwie SQLEXPRESS, i musisz dokładnie sprawdzić, jaka to wersja. Serwery wcześniejszej wersji niż wersja instancji VS SQL odmówią dołączenia pliku MDF, ponieważ jego format nie rozpoznaje. Postępuj zgodnie z instrukcjami w KB 321185, aby ustalić, jaka wersja programu SQL Server ma twoje środowisko VS.

Aktualizacja

nie byłem świadomy VS posiada kreatora eksportu. Postępuj zgodnie z instrukcjami, które zapewnia.

Powiązane problemy