På din egen server kan du mange ting i IIS-kontrolpanel. På et webhotel kan du vel kun hvad der er tilgængeligt i kontrolpanelet, hvor man sommetider kan sætte en 404-redirect op.
Okay.. jeg synes jeg har læst at man kan bruge et modul ellers.. men jeg har ikke kunnet finde nogen. Det er fordi udbyderen vil have en masse penge for at sætte det op, da det ikke er i kontrolpanelet. Lidt noget bondefangeri.
Jeg har nu godt nok kun testet den via den indbyggede Development Server, men der virker det altså. Jeg skal ikke sværge på at dette så kan overføres til IIS'en.
Den kaldes for samtlige adresser jeg taster ind i browserens adresselinje. Om det er en sti der ville føre til et directory, eller om det er en fil ... .aspx, .html og også .foobar.
Du skal nok oprette en reference til System.Web.dll filen fra dit DLL projekt. Det gør du ude i højre side af din VS ved at vælge Add Reference og så browse dig frem til den under .Net fanen.
Det virker ikke lokalt i hvertfald. Den er pænt ligeglad. Den kører dll'en, for jeg havde glemt at rette && til || .. og så kunne den, logisk nok, ikke åbne Default.aspx .. men alt andet.. også .aspx filer redirecter den ikke til 404.aspx.
Så der der åbenbart i det mindste en forskel på den indbyggede Development Server i VS og så en rigtig IIS.
Jeg har kigget i den dokumentation som jeg har kunnet finde, og dette er hvad jeg har lært i den sammenhæng:
En IIS kan konfigureres til at sende alle requests videre til ASP.Net. Det er bl.a. sådan at man kan komme til at lave URL'rewriting via ASP.Net. Det er faktisk en ganske lille konfigurations-ændring når det kommer til stykket: ".*" filer skal blot mappes til aspnet_isapi.dll applikationen.
<ironi> Forståligt nok er det noget dit webhotel skal have mange penge for... </ironi>
Der er dog sikkert nogle sikkerhedsmæssige aspekter, som gør at man ikke ville ænske at sætte sit site sådan op uden at tænke sig godt om, men den del tør jeg slet ikke udtale mig om.
Requests udefra rammer først IIS'en. Derefter bliver de sendt igennem systemet på nogenlunde nedenstående facon (skal nok pastes til notepad for at give mening):
Dvs. at der kan være nul eller flere HTTP-moduler involveret men kun en HTTP-handler. Rent faktisk behøver der ikke nødvendigvis at være en fil; Respons kan godt genereres direkte af modulerne eller handleren.
HTTP-modulerne kommer altså efter IIS'en i eksekverings rækkefølgen og uden den ovennævnte konfiguration bliver requests slet ikke sendt videre fra IIS'en til HTTP-runtime'en. Og så har alle de moduler man måtte vælge at tilføje ingen som helst effekt.
Dermed er vi (næsten) tilbage til Eriks' svar i 27/11-2007 16:56:39. :^|
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.