Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

Îåêßíçóå áðü ôï ìÝëïò Karist. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 23-09-2007, 13:50. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-09-2007, 13:12 35228

    Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

    Καλημέρα σε όλους

    Στο  Web application που γράφω, αρχικά χρησιμοποίησα το ASP.NET configuration για να έχω ασφάλεια σε ορισμένες σελίδες.
    Όλα μια χαρά, όσο η βάση ήταν στο μηχάνημά μου. Όταν έκανα publish το project στον Server θέλησα να χρησιμοποιήσω μια ASPNETDB βάση που υπήρχε στον SQL Server από άλλο project και περιέχει ήδη πολλά από τα στοιχεία που με ενδιαφέρουν.
    Άλλαξα στο web.config το connection string όπως παρακάτω  και στη συνέχεια έσβησα τη βάση από το App_Data: ( σας δείχνω όλο το web.config )

     <?xml version="1.0"?><!-- Note: As an alternative to hand editing this file you can use the web admin tool to configure settings for your pplication. Use the Website->Asp.Net Configuration option in Visual Studio.A full list of settings and comments can be found in machine.config.comments usually located in \Windows\Microsoft.Net\Framework\v2.x\Config -->

    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <
    appSettings>
    <
    add key="CrystalImageCleaner-AutoStart" value="true" />
    <
    add key="CrystalImageCleaner-Sleep" value="60000" />
    <
    add key="CrystalImageCleaner-Age" value="120000" />
    </
    appSettings>

    <connectionStrings>
    <
    add name="PressData_for_WebConnectionString" connectionString="Data Source=APOLLON;Initial Catalog=PressData_for_Web;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <
    add name="CustomersConnectionString1" connectionString="Data Source=APOLLON;Initial Catalog=Customers;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <
    add name="sqlservices" connectionString="Data Source=apollon;Integrated Security=SSPI;Initial Catalog=aspnetdb;"/>
    <
    add name="PressData_for_WebConnectionString3" connectionString="Data Source=APOLLON;Initial Catalog=PressData_for_Web;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <
    add name="WebCustomersConnectionString" connectionString="Data Source=APOLLON;Initial Catalog=Customers;Integrated Security=True" providerName="System.Data.SqlClient"/>
    </
    connectionStrings>

    <system.web>
    <
    customErrors mode="Off"/>
    <
    roleManager enabled="true" />
    <!--
    <customErrors mode="RemoteOnly" defaultRedirect="CustomError.htm" />-->
    <
    compilation debug="true">
    <
    expressionBuilders>
    <
    add expressionPrefix="Themes" type="ThemesExpressionBuilder"/>
    </
    expressionBuilders>

    <!-- <assemblies><add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies>-->

    </compilation>
    <
    authentication mode="Forms" />
    <!--
    Use any of the following values for the styleSheetTheme attribute: styleSheetTheme="Snow""Magnolia", "Jazz", "Snow".-->
    <
    pages styleSheetTheme="SmokeAndGlass"/>
    <
    anonymousIdentification enabled="true"/>
    <
    membership defaultProvider="sqlprovider">
    <
    providers>
    <
    clear/>
    <
    add name="sqlprovider" type="system.web.security.sqlmembershipprovider" connectionStringName="sqlservices" applicationName="sampleapplication"/>
    </
    providers>
    </
    membership>
    <
    profile enabled="true" defaultProvider="sqlprovider">
    <
    providers>
    <
    clear/>
    <
    add name="sqlprovider" type="system.web.profile.sqlprofileprovider" connectionStringName="sqlservices" applicationName="sampleapplication"/>
    </
    providers>
    <
    properties>
    <
    add name="ShoppingCart" type="ShoppingCart" allowAnonymous="true" serializeAs="Binary"/>
    </
    properties>
    </
    profile>
    </system.web>
    </
    configuration>
    =========================================================

    ....και συμβαίνει το εξής: Χρησιμοποιώντας το ASP.NET configuration (Web Site Administration Tool), ο νέος χρήστης που θα φτιάξω θα γραφτεί στη βάση που βρίσκεται στον SQL Server 2005 και μάλιστα μου εμφανίζει και όλους τους προηγούμενους χρήστες.
    Όταν όμως φτιάξω ένα ρόλο, θα γραφτεί σε  μια νέα ASPNETDB βάση  που θα εμφανιστεί μέσα στο  App_Data directory ( ενώ προηγούμενα την είχα σβήσει!!! )
    Τον χρήστη τον δημιουργεί εκεί που θέλω, ενώ τους ρόλους όχι.

    Επίσης όταν θα "τρέξω" το site από τον web server και ζητήσω τη secure σελίδα, μου εμφανίζει το login, περνάω user name &  password και "κολλάει" εκεί. Αν σβήσω τη βάση από το App_Data θα βγάλει μήνυμα ότι δεν μπορεί να ανοίξει τη βάση και άλλα.

    Έχω ψάξει Geeked, μήπως  και από κάπου αλλού ( εκτός από το web.config ) πρέπει να αλλάξω κάτι, αλλά δεν το έχω βρει. Crying

    Γνωρίζει κάποιος για αυτό?
    Ευχαριστώ

  •  21-09-2007, 13:50 35229 σε απάντηση της 35228

    Απ: Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

    Δες το παρακάτω, και δοκίμασε να το βάλεις κι αυτό στο <system.web> τμήμα του web.config (αφού το παραλλάξεις με τα δικά σου options, εννοείται)

    <roleManager enabled="true" cacheRolesInCookie="true" createPersistentCookie="true" >
        <providers>
           <add applicationName="/" connectionStringName="LocalSqlServer" name="DefaultRoleProvider" type="System.Web.Security.SqlRoleProvider" />
        </providers>
     </roleManager>

    Δοκίμασε να κάνεις set το connectionstring από εκεί.

    Και για να είσαι ήσυχος ότι δεν θα βλέπει η εφαρμογή σου το default connection string του machine config (ώστε να κάνει δυναμικά attach databases), βάλε ένα <clear /> πριν τη δήλωση του πρώτου connection string.

    <connectionStrings>
    <clear />
    <add .....


    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  21-09-2007, 15:13 35236 σε απάντηση της 35229

    Απ: Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

    ΕΙΣΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟΣ!

    Σ' ευχαριστώ πολύ για την πολύτιμη βοήθειά σου.

    Να ρωτήσω κάτι ακόμα εγκυκλοπαιδικά?

    Αν αλλάξω στο machine.config τις default ρυθμίσεις π.χ. να βλεπει το connectionstring που θέλω εγω και όχι το LocalSqlServer θα έχω πρόβλημα?

    Ευχαριστώ

  •  21-09-2007, 15:32 35237 σε απάντηση της 35236

    Απ: Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

    Όχι, δεν θα έχεις πρόβλημα, αλλά το "πείραγμα" του machine.config δεν συνίσταται γενικώς (μιας και δεν είναι application specific αλλά server specific).


    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  23-09-2007, 13:50 35264 σε απάντηση της 35237

    Απ: Μεταφορά του ASPNETDB.MDF από SQL Express 2005 σε SQL Server 2005

    Θα ήταν πιο εύκολο, αντί να κάτσεις να πειράξεις όλα τα επιμέρους settings του personalization (membership,profile,rolemanager), να "παίξεις" με τα connection strings σου.

    Από default το personalization, πιστεύει ότι θα βρει ότι χρειάζεται μέσα στην βάση που του υποδυκνεύεται μέσα από το connection με το όνομα LocalSQLServer. Μέσα στο web.machine.config, αυτό δηλώνεται να είναι μια βάση μέσα στο App_Data folder του site και χρησιμοποιεί ένα instance του SQL Epxress για να τρέξει.

    Αν γίνει η παρακάτω επέμβαση στο web.config του site:

    1
    2
    3
    4
      <connectionStrings>
    <clear/>
    <add name="LocalSqlServer" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbname;Data Source=." providerName="System.Data.SqlClient"/>
    </connectionStrings>

    η βάση που θα χρησιμοποιήσει το personalization είναι η dbname που είναι στον τοπικό SQL 2005 και δεν θα απαιτηθεί να γίνει άλλη αλλαγή στο web.config για να παίξει το personalization.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems