Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

ASP.NET III / Udrulning / af web-applikation


ASP.NET fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i ASP.NET som fjernundervisning på www.it-fjernundervisning.dk


Build options

En applikation har du build optioner: debug og release. For at ændre build options gøres følgende:

  1. Fra Build menuen vælges Configuration Manager
  2. Vælg den ønskede build option og klik ok
  3. Åben web.config filen og sæt compilation elementet så det passer til build optionen:
<compilation defaultLanguage="c#" debug="true" />

Når debug optionen er valgt vil VS.NET oprette en program database fil (.pdb) der bruges til at vise værdier af variable, sætte breakpoints etc.

Når man skifter til release optionen dannes denne fil ikke og koden kommer til at køre hurtigere, da der ikke skal holdes øje med breakpoints etc.

De to indstillinger skal stemme overens!

 

Identificering af applikationen

Før applikationen rulles ud bør man sørge for informationer, der kan identificere applikationne. Det gør man ved at åbne AssemblyInfo fil og tilføje de nødvendige informationer:

using System.Reflection;
using System.Runtime.CompilerServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]  
//
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
//
[assembly: AssemblyVersion("1.0.*")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your machine. KeyFile refers to a file which contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key
//           in the KeyFile is installed into the CSP and used.
//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
//        When specifying the KeyFile, the location of the KeyFile should be
//        relative to the "project output directory". The location of the project output
//        directory is dependent on whether you are working with a local or web project.
//        For local projects, the project output directory is defined as
//       <Project Directory>\obj\<Configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//        For web projects, the project output directory is defined as
//       %HOMEPATH%\VSWebCache\<Machine Name>\<Project Directory>\obj\<Configuration>.
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information on this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

Konfiguration

Konfiguration af en web-applikation styres af to filer - web.config og machine.config

  • machine.config filen ligger i \Windows\Microsoft.NET\Framework\version\config mappen. Machine.config styrer alle applikationer der kører på serveren.
  • web.config ligger i applikationens rod bibliotek og styrer den aktuelle web-applikations indstillinger.

Man kan desuden have en web.config fil liggende i en undermappe på web-sitet - den kan blandt andet bruges til at styre rettighede i den pågældene mappe.

Web.config filen kan indeholde følgende elementer:

ElementBruges til
compilationIndstille build typen til debug eller release
customErrorsVise brugerdefinerede fejlsider afhængig af http fejlkoder
authenticationStyre hvilken authentificering der bruges
authorizationListe med brugere eller roller der må køre applikationen
traceGøre tracing aktiv i forbindelse med debug
sessionStateBestemme, hvordan ASP.NET skal gemme session variable
globalizationSætte kulturelle informationer for applikationen

 

Upload

Når en web-applikation skal flyttes til en web-server skal følgende filer kopieres til serveren:

  • alle aspx og ascx filer
  • dll filer i bin folderen
  • eventuelle databaser og xml dokumenter

Man behøver ikke kopiere cs eller vb filer til serveren.

VS.NET har en copy projekt knap i Solution Explorer, men i praksis er det ofte lettere manuelt at flytte de ændrede filer med ftp.

Delte komponenter

Hvis applikationen bruger komponenter, der er delt med andre applikationer skal disse også flyttes til serveren:

  • COM komponenter - kopieres til serveren og registerers. Dette gøres normalt med et program som regsrv32
  • Svagt-navngivne .NET komponenter - kopieres til applikationens bin folder
  • Stærkt-navngivne .NET komponenter - installeres i serverens globale assembly cache.

'.NET komponenter findes som det fremgår i 2 varianter svage og stærke. Forskellen er styret af, hvordan navne er gemt i assemblyet. For de svage gælder, at navne ikke er unikke og derfor ikke kan deles uden at det kan give konflikter. I de stærke er navne digitalt signeret og man kan derfor være sikker på, at der ikke opstår konflikter med andre komponenter. Stærke .NET komponenter kan ikke kalde f.eks. COM komponenter.

Stærke .NET kan kopieres til serverens globale assembly cache. Den globale assembly cache er en speciel folder på serveren, hvor man kan opbevare komponenter, der så kan bruges af alle applikationer på serveren. Man kan installere en komponent i GAC med kommandoen:

GacUtil -i MyServerControls.dll

Sikkerheds angivelser

Som default kører en ASP.NET applikation som ASPNET brugeren , der bliver oprettet når .NET rammeværket installeres på serveren. ASPNET brugeren har som default begrænsede rettigheder - blandt andet kan den ikke skrive til disken! Man har derfor ofte brug for at ændre rettighederne - det kan man gøre på følgende måder:

  • Giv ASPNET brugeren rettigheder til de ønskede filer/mapper - det kan man gøre, hvis serveren bruger NTFS fil systemet
  • Lav om på den brugergruppe ASPNET brugeren tilhører (eller meld den ind i en anden gruppe)
  • Brug "impersonation" for at køre processen som en anden bruger.

 

De to første er overkommelige og vil derfor ikke blive behandlet yderligere, men den sidste er interessant...

I web.config kan man med linjen

<identity impersonate="true" name="localhost\WebUsr" password="12345678" />

sørge for at applikationen kommer til at køre gennem WebUsr kontoen.

Det er desuden muligt at bruge "impersonation" til at overføre identiteten af en autentificeret bruger til serveren - det ser sådan her ud:

<identity impersonate="true" />
<authorization>
<deny users="?" />
</authorization>

Applikationen vil så køre på serveren som den brugerkonto der er logget ind med.


   
Spacer Spacer Spacer Spacer