Avatar billede keysersoze Guru
21. januar 2009 - 17:43 Der er 10 kommentarer og
1 løsning

Request.ServerVariables("QUERY_STRING") på Win2008 og IIS7

Jeg har haft et site med en custom 404-side kørende på en IIS6 - fejlsiden har benyttet Request.ServerVariables("QUERY_STRING") til at vise den rigtige side for brugeren.

Nu er siden flyttet til en Win2008 med IIS7 og nu er Request.ServerVariables("QUERY_STRING") konstant tom og der er ingen anden variabel med de informationer jeg skal bruge.

Er dette en indstilling der kan sættes i IIS'en eller hvad kan der gøres her?
Avatar billede jokkejensen Novice
21. januar 2009 - 20:49 #1
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 21:16 #2
Du kan lave et check på hvilke variabler du har adgang til. I gammeldags ASP:

  For Each d In Request.ServerVariables
      response.write d & " = " & Request.ServerVariables(d)  & "<br>"
  next

Kan laves tilsvarende i ASP.NET
Avatar billede keysersoze Guru
21. januar 2009 - 21:18 #3
som jeg læser den omhandler det et problem med samtlige post data - i mit tilfælde er det kun QUERY_STRING der er tom, de øvrige indeholder alle det forventlige.
Avatar billede keysersoze Guru
21. januar 2009 - 21:24 #4
Jeg har allerede forsøgt mig med den løkke - men der er ingen andre variabler der indeholder det nødvendige (den nævnte inderholder fx "404;http://domain.dk:80/hovedside/underside" hvor det virker (og hvor hovedside/underside er det vigtige)) og af en eller anden grund fanger løkken ikke alle variabler (fx mangler UNENCODED_URL så måske ligger der andre ukendte muligheder).
Avatar billede keysersoze Guru
21. januar 2009 - 21:26 #5
... ser lige i det samme at UNENCODED_URL er fra IIS4 og tidligere og derfor ikke længere tilgængelig (selvom den stadig returnere et resultat).
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 21:51 #6
Det er til brug for et "url-rewriting-hack" ?  Er der ikke bedre metoder i dag?
Avatar billede keysersoze Guru
21. januar 2009 - 22:06 #7
jo - men siden kører stadig gammeldags ASP og der er ikke de store muligheder udover hvad der vistnok er indbygget i IIS7 nu, men det kræver adgang til IIS'en og det er lidt svært hos en webhost hvorfor et ASAPI Filter også er udelukket.

Alternativet er at lægge rewrite-delen over i .NET, men ville helst undgå at skulle skrive noget om.

Domænet kunne begge steder administreres gennem kontrolpanelet Plesk - og den eneste forskel jeg kan se på de to steder er, at i nyeste udgave bliver ændringer i custom errors gemt i en synlig web.config (ved ikke helt hvordan den gjorde i den gamle version, men i hvert fald ikke i en synlig fil) så måske er dette årsagen til forskellen i servervariabler.
Avatar billede keysersoze Guru
21. januar 2009 - 22:22 #8
Om det er en forskel i kontrolpanelet (Plesk), i IIS eller en kombination af flere ting tør jeg ikke sige - men i hvert fald har jeg mulighed for at sætte en responseMode i min web.config som ikke er tilgængelig i Plesk (og altså ikke nødvendig i gammel Plesk/IIS), nemlig ExecuteURL - benytter jeg denne responseMode bliver QUERY_STRING-variablen tilgængelig og så er problemet løst (:

Hvis du har et forslag til bedre url-rewrite metode i klassisk asp og som kan køre på et webhotel er jeg selvfølgelig meget interesseret i at høre mere om det.
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 22:29 #9
Nej, det ved jeg ikke.
Avatar billede keysersoze Guru
22. januar 2009 - 23:35 #10
anyway - jeg må hellere lukke. jokkejensens forslag var til Vista og ikke win2008 - erikjacobsen ledte mig en smule på vej men jeg gætter på at du stadig ikke samler point?
Avatar billede erikjacobsen Ekspert
23. januar 2009 - 08:42 #11
Nej tak.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows