UPLOAD Af Database og Website til Skolens Server
INDHOLDSFORTEGNELSE Fra projekt til server... 3 Overførsel af SQL Database... 3 Eksekvering af T SQL Script... 8 Modificering af Visual Studio Projekt... 11 Membership i Database... 11 Upload af Website til Skolens Server... 17 Anvendelse... 20
Fra projekt til server For at uploade og benytte lokale SQL Databaser på skolens SQL server, skal der udføres nogle punkter for at få et succesfuldt resultat. Disse punkter er som følger: 1. Den lokale SQL Database skal overføres til Skolens SQL server ved brug af Database Publishing Wizard (indbygget i Visual Studio 2008). 2. Konfigurering af Web Config, så det benytter SQL Databasen på skolens SQL server, i stedet for den lokale SQL server der befinder sig på udviklerens computer. Overførsel af SQL Database Som før nævnt er Database Publishing Wizard tool et indbygget i Visual Studio 2008, så der burde på nuværende tidspunkt ikke være nogle, der har behov for at downloade tool et separat. Skulle dette dog være tilfældet, kan det downloades her: http://www.microsoft.com/downloads/details.aspx?familyid=56e5b1c5 BF17 42E0 A410 371A838E570A&displaylang=en Der er brugt Visual Studio 2008 i dette dokument, men det skrevne er også gældende for Visual Studio 2005 og Visual Studio 2010 samt Web Developer Editions af før nævnte. Start nu det Værktøj du anvender. 1. Åben Server/Database Explorer vinduet og højre klik på en Database forbindelse, som illustreret herunder. 3 COPYRIGHT 2010 MEDIA COLLEGE
Dette Starter Database Publishing Wizard. Her skal vi først vælge, hvilken database vi vil kopiere, og om vi ønsker at scripte alle objekter i den valgte database. Vælg den relevante database, lad "Script all objects in the Selected database" være markeret, og klik på Next. Hvis du fjerner markeringen i afkrydsningsfeltet, vil de efterfølgende skærmbilleder spørge dig om, hvilke database objekter, du ønsker at publicere. Dette vælges derfor kun, hvis du specifikt kun ønsker dele af databasen overført, det kunne for eksempel være roles, stored procedures, tabels og views. 4
Med vores nuværende valg som illustreret i figuren herover, vil wizard en generere det T SQL script, der er nødvendigt for at oprette databasen med roles, tabels, stored procedures med mere. Ønsker man mere kontrol eller statisk backup af databasen, kan wizard en gemme dette script som en fil. Scriptet kan derefter eksekveres på en helt tredje SQL server, f.eks. via SQL Server Management Studio. 5
Nedenstående screenshot viser, at man ud over at kunne gemme scriptet som en fil, også direkte kan overføre det til en Shared Hosting Provider, som typisk er den løsning man har, hvis man har købt serverplads hos et hosting selskab. Vælg det sted hvor scriptet skal gemmes og klik Next. Det anbefales, at benytte Browse til at finde den rette lokalisation. Det næste skærmbillede giver dig mulighed for at specificere publicerings muligheder, såsom hvorvidt scriptet bør omfatte DROP statements, afgøre om den eksterne database er lavet til SQL Server 2000, SQL Server 2005 eller SQL Server 2008, og om du kun ønsker at offentliggøre struktur eller struktur og data. Standard opsætningen af dette vindue er det vi skal anvende, derfor klik Finish for at fuldføre processen. 6
Når du har klikket på Finish, viser guiden en proces bar til illustrationen af, at scriptet generes. Forudsat at alt fungerer som forventet, har du nu en SQL fil, som kan eksekveres på den SQL database, du skal benytte fremover til websitet. 7
Eksekvering af T SQL Script Start nu SQL Management Studio, og tilslut til skolens SQL server. Som det fremgår af figuren, skal der her benyttes de oplysninger, der er udleveret. Når man er logget på skolens SQL server, vil man kunne se alle databaser tilgængelig på serveren, dog kan du kun tilgå din egen, hvilket er den der har samme navn, som dit bruger login (i figuren herover altså Student10049). Da hver elev kun har én database på skolens server, skal man være meget opmærksom på, hvorvidt tabel navnene på databasen kommer til at kollidere. Altså hvorvidt tabellerne på den lokale database, har samme navne som allerede tilgængelige tabeller på databasen, der er tildelt på skolens SQL server. Er dette tilfældet, bør man ændre navnene på tabellerne, så de starter med websitets navn som enten prefix eller navn, efterfulgt af underscore og navnet på tabellen (f.eks. MyShop_Products). 8
Find den database du har fået tildelt, og udvid den ved at klikke på plus tagget. Oppe i menuen under File, finder du Open, som nu skal klikkes og anvendes, da der nu skal åbnes den SQL fil, du har genereret med Database Publishing Wizard. 9
Når script filen er blevet indlæst, som vist herunder, skal den eksekveres. Dette gøres ved at trykke <F5>, eller klikke på Execute knappen som er markeret med et udråbstegn. I bunden af den indlæste SQL fil, kan man holde øje med, om eksekveringen er gået som planlagt, og uden problemer. Dette område er markeret med gult. Hvis alt er forløbet, som det skal, kan du nu klikke på Refresh. Herved kan du se de tabeller, der oprindeligt er lavet på den lokale database, på den nye database på skolen SQL server. 10
Modificering af Visual Studio Projekt For at få websitet til at benytte den nye SQL Database, i stedet for den lokale SQL Database, skal der ændres i Web Config filen. 1. Find <connectionstrings> i Web Config filen. 2. De enkelte ConnectionStrings skal nu modifieres, så de benytter skolens SQL server. Et eksempel på en forbindelse til en database på en lokal SQL Server: <add name="kronhjortconnectionstring" connectionstring="data Source=PCM05476\SQLEXPRESS;Initial Catalog=Kronhjort;Integrated Security=True" providername="system.data.sqlclient" /> Et eksempel på en forbindelse til en database på en skolens SQL Server: <add name="kronhjortconnectionstring" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> Som det ses er navnet på begge ConnectionStrings ens (KronhjortConnectionString). Ved at bruge det samme navn undgår man at skulle foretage yderligere ændringer, for uden dem man foretager sig i Web Config filen. I ovennævnte eksempel symboliserer * et vilkårligt tal mellem 0 og 9, når der er tale om Initial Catalog og User ID. Student***** kunne således f.eks. være Student10049. Stjernerne efter Password symboliserer alle karakterer, så i ovennævnte eksempel kunne Password således f.eks. være Media_Col_?/. Så for at få det til at virke på jeres specifikke database ude på skolens server, skal i således skrives jeres egne informationer ind på stjernernes plads. Membership i Database Har man Membership direkte på sit website, er det vigtigt at oprette det eksternt i den nye database. Dette kan gøres med Aspnet_regsql applikationen, som findes på denne sti: C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe Applikationen minder lidt om Database Publishing Wizard, og man skal blot indtaste de samme oplysninger omkring den SQL server, man vil oprettet membership et på, og programmet vil derfra klare resten. Applikationen er også blevet nævnt i Membership del1 dokumentet. Her blev den gennemgået med 11 COPYRIGHT 2010 MEDIA COLLEGE
henblik på at oprette en Membership tabel lokalt på brugerens egen lokale SQL server. Her gennemgås hvordan det skal gøres, hvis man skal oprette en membership tabel på skolens SQL server. 12
13
Hvis man allerede har sit Membership liggende fjernet fra ens applikation på sin egen lokale SQL server, kan man kopiere dette til skolens SQL server på samme måde som enhver anden database. Dette er beskrevet i afsnittene Overførsel af SQL Database og Eksekvering af T SQL Script i dette dokument. Når man bruger Membership på sit website, skal man ændre eller oprette en ConnectionString ved navn LocalSqlServer, til at bruge den SQL server, som befinder sig på skolen. Da LocalSqlServer er et standard ConnectionString navn for lokationen af det Membership, der anvedes, skal man lave et Clear tag, for at fjerne det forud definerede Membership, som ikke kan fungere lokalt på skolens webserver. <connectionstrings> <clear/> <add name="localsqlserver" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> <add name="kronhjortconnectionstring" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> </connectionstrings> Som det ses, bruger begge ConnectionStrings samme indstillinger, forskellen er blot navnet. Når Membership et er oprettet på den database, der ligger på skolens SQL server, skal man ikke oprette det på de andre websites man laver, der skal ligge på skolens web server. Man skal bare bruge samme ConnectionString på alle websites. Det vil også sige, at hvis man har oprettet en bruger på et website, findes samme bruger også på de andre websites, som anvender skolens SQL server, da det jo på denne måde deler Membership. Ved upload af websites til skolens server, skal man selvfølgelig anvende de ConnectionStrings, der peger på skolens SQL server. Man kan godt benytte de ConnectionStrings der bruger skolens SQL server, når man udvikler på websitet, men ikke omvendt. Man kan altså ikke bruge den lokale SQL server, hvis man har uploadet websitet på skolens eller anden ikke lokal web server. Det kan være en rigtig god ide, at have ConnectionStrings både til sin lokale SQL server på PC ens harddisk og til skolens SQL server defineret i ens projekts Web.config fil. Man skal blot huske på, at der kun kan/skal være et sæt af ConnectionsStrings aktive af gangen. Se eksemplet herunder <connectionstrings> <clear/> <! De 2 ConnectionString herunder peger på skolens SQL SQL server og skal anvendes, når man er på skolen og anvender sin databse på skolens SQL server. De er aktive/indkommenteret i dette eksempel!!! --!> <add name="localsqlserver" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> 14 COPYRIGHT 2010 MEDIA COLLEGE
<add name="kronhjortconnectionstring" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> <! De 2 ConnectionString herunder peger på ens lokale SQL SQL server og skal anvendes, når man arbejder hjemme, eller er på skolen og anvender sine lokale databaser på sin lokale SQL server. De er inaktive/udkommenteret i dette eksempel!!! --!> <!-- <add name="localsqlserver" connectionstring="data Source=PCM05476\SQLEXPRESS;Initial Catalog=Kronhjort;Integrated Security=True" providername="system.data.sqlclient" /> <add name="kronhjortconnectionstring" connectionstring="data Source=PCM05476\SQLEXPRESS;Initial Catalog=Kronhjort;Integrated Security=True" providername="system.data.sqlclient" /> --!> </connectionstrings> I eksemplet herover er det ConnectionStrings til skolens SQL server, der er aktive. Så i dette tilfælde skal man være på skolen, for at ens hjemmeside, kan eksekveres. Vil man kunne eksekvere sin hjemmeside op mod sin lokale SQL server (f.eks hvis man arbejder derhjemme), skal man udkommentere de ConnectrionsStrings, der peger på skolens SQL server og indkommentere de ConnectionStrings, der peger på ens lokale SQL server. Dette er vist i det efterfølgende eksempel. <connectionstrings> <clear/> <! De 2 ConnectionString herunder peger på skolens SQL SQL server og skal anvendes, når man er på skolen og anvender sin databse på skolens SQL server. De er inaktive/udkommenteret i dette eksempel!!! --!> <!-- <add name="localsqlserver" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> <add name="kronhjortconnectionstring" connectionstring="data Source=10.138.22.47;Initial Catalog=Student*****; User ID=Student*****;Password=************" providername="system.data.sqlclient" /> <<!> <! De 2 ConnectionString herunder peger på ens lokale SQL SQL server og skal anvendes, når man arbejder hjemme, eller er på skolen og anvender sine lokale databaser på sin lokale SQL server. De er aktive/indkommenteret i dette eksempel!!! --!> add name="localsqlserver" connectionstring="data Source=PCM05476\SQLEXPRESS;Initial Catalog=Kronhjort;Integrated Security=True" providername="system.data.sqlclient" /> 15 COPYRIGHT 2010 MEDIA COLLEGE
<add name="kronhjortconnectionstring" connectionstring="data Source=PCM05476\SQLEXPRESS;Initial Catalog=Kronhjort;Integrated Security=True" providername="system.data.sqlclient" /> </connectionstrings> Som tilfældet var med de andre eksempler, er ConnectionStrings i ovennævnte eksempler også kun illustrative. Det vil sige, at de skal rettes til for at virke på jeres lokale SQL server og jeres skole SQL server. 16 COPYRIGHT 2010 MEDIA COLLEGE
Upload af Website til Skolens Server For at uploade websitet skal man enten anvende FTP Client software, eller anvende Visual Studio/Web Developer. Det kan anbefales at anvende en FTP Client, da det som regel fungerer hurtigere. Der findes i dag rigtig mange FTP Clients på markedet, og mange er endda gratis i både brug og tilgængelighed. En af de bedste af dem man kan bruge frit uden betaling, er programmet FileZilla, hvorfor vi har valgt at benytte dette. FileZilla kan hentes her: http://filezilla project.org/ Vi har forskellige valgmuligheder, når vi skal have adgang til skolens web server. Den smarteste metode er at oprette adgangen i Websted Manager, da man derefter nemt og hurtigt kan få adgang til serveren igen, uden at skulle indtaste oplysningerne ind igen. I Websted Manager en skal man i Vært tekst feltet skrive: medieproduktion.mediacollege.dk. (det kan dog være nødvendig på nogle computere, at skrive IP adressen ind direkte i dette felt : 10.138.22.47) I Logon type vælger man Normal. I Bruger og Kodeord skriver man de oplysninger om selv samme, man har fået udleveret. 17 COPYRIGHT 2010 MEDIA COLLEGE
En ting man skal være opmærksom på, er at sætte overførselstilstand til Aktiv under fanebladet Overførselsindstillinger. Grunden til dette er, at serveren sørger for hvilken port din forbindelse skal anvende. Brugte man Passiv, skulle klienten selv initialisere og sørge for at den rette port blev anvendt. 18
Active server mode er vel nok den mest anvendte tilstand på for FTP forbindelser, derfor hvis du har købt en web hosting løsning, og FTP forbindelsen ser ud til at være godkendt fra serveren, men derfra ikke vil gå videre, er det sandsynligt fordi, at du benytter Passive server mode som tilstand, og at serveren kræver at du benytter Active server mode. FileZilla er opbygget på den måde, at man har en browser i venstre side, der viser indholdet af din computer, og den FTP server du er tilsluttet i højre side. For at uploade dit website, skal du blot trække alle filer og mapper fra din computer, over i den mappe/website du skal bruger for netop dette site. Senere i forløbet vil i få tildelt flere mapper, alt efter hvilke projekter i får. Hver mappe vil være holderen for jeres website, og derfor kan kun de mapper i har fået, være brugbare til ASP.NET websites. I kan altså ikke selv oprette mapper på FTP serveren, og forvente at jeres ASP.NET website vil kunne fungere der. Det er derfor også vigtigt, at i ikke uploader den mappe jeres website ligger i på jeres computer, men kun de filer og derfra mapper, som website mappen indeholder. 19 COPYRIGHT 2010 MEDIA COLLEGE
Anvendelse Da skolen ligger bag et lukket netværk, der kræver særlig adgang for at komme ind, hvis man befinder sig uden for skolens område og lokale netværk, er det varmt at anbefale, at man venter til sidst med at uploade websitet, overføre database og ændre ConnectionStrings. De websites du uploader vil befinde sig på følgende adresse: http://medieproduktion.mediacollege.dk Du skal derefter indtaste de fem sidste numre i dit brugernavn som port, for eksempel: http://medieproduktion.mediacollege.dk:10159 Til forskel fra forbindelse til FTP og SQL server, kan man tilgå disse adresser på internettet. 20 COPYRIGHT 2010 MEDIA COLLEGE