Avatar billede dingemann Novice
04. oktober 2008 - 13:29 Der er 13 kommentarer og
1 løsning

Flytning af aspnetdb.mdf til MSSQL2005

Hej folkens.

Jeg/vi sidder og er igang med et projekt som vi syncer op mod en Team Foundation Server.
Projektet anvender blandt andet Membership Class - det der med aspnetdb.mdf-databasen der bliver oprettet med brugerkontoer mv.

I den forbindelse - og for fremtidens brug egentlig også, ville det være super aktuelt hvis denne database kunne flyttes fra at køre lokalt på udviklerens klient til at køre over en MSSQL2005. Jeg har siddet og rodet i web.config-filen i ca tre dage men jeg har aldrig fået det til at lykkedes. Jeg har læst en masse og hver gang jeg troede jeg havde den opstår der fejl. Jeg har læst 4GuysFrom osv uden held.

Så nu er jeg nået dertil hvor jeg egentlig bare gerne vil ha de tøre facts:

1) Hvad skal jeg skrive i min web.config for at få min web-app til at connecte op mod en MSSQL2005 og bruge en database der istedet for den lokale aspnetdb.mdf

2) Kan det overhovedet lade sig gøre?
Avatar billede arne_v Ekspert
04. oktober 2008 - 16:54 #1
Det burde da sagtens kunne lade sig gøre.

    <connectionStrings>
      <add name="foobar" providerName="System.Data.SqlClient" connectionString="Server=xxxxxx;Integrated Security=SSPI;Database=foobar" />
    </connectionStrings>

        <membership defaultProvider="xxxx">
            <providers>
                <add name="xxxx" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                    connectionStringName="foobar" ... />
            </providers>
        </membership>

skulle bruge database foobar.

Du skal naturligvis have alle tabeller og data over i foobar databasen !
Avatar billede dingemann Novice
04. oktober 2008 - 17:25 #2
min web.config ser ganske identisk ud som det du har pasted. Jeg troede lidt at de forskellige tabeller blev oprettet når jeg hoppede ind i ASP.NET Configuraiton og tester databasen...

Så må spørgsmålet vel egentlig være hvordan jeg får tabellerne over... mssql kan ikke åbne mdf-filer (vel?)
Avatar billede arne_v Ekspert
04. oktober 2008 - 17:32 #3
Du kan godt attache en MDF fil !
Avatar billede arne_v Ekspert
04. oktober 2008 - 17:33 #4
aspnet_regsql kan oprette alle tabeller og data i en database som du selv angiver.
Avatar billede dingemann Novice
04. oktober 2008 - 17:42 #5
jeg går ud fra at aspnet_regsql er manuelt arbejde og en aspnetdb-fil indeholder ret så mange tabeller så vidt jeg husker. Kan jeg ikke exporterer indholdet og smide over i en ny MSSQL

(og vil du ikke ha point?)
Avatar billede arne_v Ekspert
04. oktober 2008 - 18:28 #6
Nej - hvis din PC kan tilgå den SQLServer, så kan aspnet_regsql lave det hele for dig.

Jo - du kan godt eksportere struktur som SQL og data som CSV og importere dem i en anden database.

Jo - jeg samler.
Avatar billede dingemann Novice
04. oktober 2008 - 22:49 #7
okay... jeg kigger lige på aspnet_regsql men måske jeg kommer tilbage og vræler hvis jeg ikke kan hitte ud af det.
Avatar billede dingemann Novice
13. oktober 2008 - 19:21 #8
nu har jeg siddet og fedtet med det i nogle dages tid og er nået dertil hvor den connecter til databasen men brugeren er ikke brugbar. Jeg har skubbet din connectionstring ind fremfor den jeg brugte før. Følgende er i min web.config:

  <!--<add name="up-site.payMeConnectionString" connectionString="Data Source=XXX.XXX.XXX.XXX;Initial Catalog=payMeaspnetdb;User ID=db_userAdmin;Password=XXXXXXXX" providerName="System.Data.SqlClient"/>-->
    <add name="payMeConnectionString" providerName="System.Data.SqlClient" connectionString="Server=XXX.XXX.XXX.XXX;Integrated Security=SSPI;Database=payMeaspnetdb" />
  </connectionStrings>
 
    <system.web>


      <membership defaultProvider="testProvider">
        <providers>
          <add name="testProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="payMeConnectionString"
          applicationName="\"
          minRequiredPasswordLength="5"
          minRequiredNonalphanumericCharacters="0" />
        </providers>
      </membership>

      <roleManager enabled="true"
      defaultProvider="testRoleProvider">
        <providers>
          <add name="testRoleProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="payMeConnectionString" />
        </providers>
      </roleManager>


og det giver så følgende fejl:

There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store.

The following message may help in diagnosing the problem: Login failed for user ''. The user is not associated with a trusted SQL Server connection.

Jeg har aldrig været skarp til connectionstrings og jeg kan ikke finde ud af hvad det egentlig er jeg skal bruge så connectionstrings.com er ligevidt. Jeg har oprettet en bruger i databasen som du kan se i det udkommenterede felt db_userAdmin der er har skriverettigheder på de databaser jeg generelt anvender.

Kan du navigere uden om fejlen?
Avatar billede arne_v Ekspert
13. oktober 2008 - 21:31 #9
Vil du bruge Windows authentication eller SQLServer autentication ?

(problemet relaterer sig til dette, så vi skal starte med at vide hvad du vil)
Avatar billede dingemann Novice
13. oktober 2008 - 22:04 #10
jeg vil skyde på at det bedste er SQL Authentication er bedst nu hvor jeg logger på fra fjern
Avatar billede arne_v Ekspert
13. oktober 2008 - 22:11 #11
så skal

    <add name="payMeConnectionString" providerName="System.Data.SqlClient" connectionString="Server=XXX.XXX.XXX.XXX;Integrated Security=SSPI;Database=payMeaspnetdb" />

nok være

    <add name="payMeConnectionString" providerName="System.Data.SqlClient" connectionString="Server=XXX.XXX.XXX.XXX;Network Library=DBMSSOCN;Trusted_Connection=False;Database=payMeaspnetdb;User ID=xxxx;Password=xxxx" />
Avatar billede dingemann Novice
14. oktober 2008 - 00:01 #12
okay... det underlige er så at det kun virker hvis jeg putter .mdf bagefter databasenavnet... det er da ikke helt normalt
Avatar billede dingemann Novice
14. oktober 2008 - 00:03 #13
men tak for hjælpen iøvrigt :)
Avatar billede arne_v Ekspert
14. oktober 2008 - 01:08 #14
Det er det ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester