Bättre låta servrarna logga ut oaktiva uppkopplingar

Råkade ut för det idag att möjliga uppkopplingar tog slut på en server. Tänkte att det är väl ingen fara eftersom jag har mitt gamla knep som brukade gå att köra från en XP-burk.

Men tyvärr inte heller det gick denna gången och jag fick bara "The terminal server has exceeded the maximum number of allowed connections" tillbaka som svar.

Som tur skedde det under dagtid så jag kunde ringa vår support. Men när såna här grejer sker under nattliga uppgraderingar kan det bli riktigt jobbigt.

Jag ställde därför in Terminal Services Configuration på alla våra servrar så att oaktiva uppkopplinga kommer självdö efter tre timmar. Hittade en bra beskrivning hos TechnoBuff.

Nu känns det hela mycket säkrare.

By Jesper Lind

ISAPI Rewrite 3 på Bineros servrar

Vi har börjat testa lite smått på några webbsajter att använda ISAPI-modulen som finns installerad hos Binero och det fungerar ganska bra. Vi har till och med fått igång ett första MVC-projekt på .NET 3.5. Riktigt kul med ett webbhotell som är framåt och förstår vilken teknik vi utvecklare vill ha.

Det tog lite tid att lista ut hur man fick igång det eftersom Bineros förklaring av Rewrite 3 inte är så utförlig. De har manualen på deras sajt så där kan man lära sig lite (funkar dock inte med Firefox 3). Helicon Tech som ligger bakom modulen rekommenderas också.

Mest hjälp för att få igång det hade jag av av några trådar på Aspsidan och webForum.

Något att tänka på är att de ändringar man gör i Script Mappings i Bineros kontrollpanel tar ett tag innan de slår igenom. Kommer ihåg den första kvällen då jag kämpade med det in på småtimmarna men hade ingen lycka. Provade mängder av olika konfigurationer och gav sist upp och bara lämnade det. Nästa morgon när jag laddade upp sidan så bara det fungerade!

Så nu ska jag förklara det jag kommit på hittills.

Det första man måste göra är att lägga till en *-mappning enligt följande.

Filetype: *
Executable: Aspnet2
is wildcard: false
is script engine: false
verify that file exists: false

När du ändå är där kan du även lägga till .asax eftersom Binero verkar ha glömt det i standardinställningen. Se bilden för exempel på de två inställningarna längst ner.

 

Sen är det dags att knåpa ihop en httpd.ini (uppdatering: filen ska ha namnet .htaccess och inget annat) som styr hur ISAPI Rewrite 3 ska uppföra sig. Här under ser ni våran som fungerar fint om man vill ta bort .aspx ändelserna. Jag har dock inte lyckats att exkludera vissa mappar, så om någon kan se vad det är för fel på sista raden som ska blocka mappen "MappSomInteSkaOmskrivas" så uppskattar jag tips. Uppdatering: Denna rad måste ju givetvis ligga överst för att de andra reglerna ska ignoreras. Har nu uppdaterat skriptet som det ska se ut och då funkar det mycket bättre.

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.34

RewriteEngine on

#Exclude folder
RewriteRule /(?!(?:Images|Css|MappSomInteSkaOmskrivas)/.*).* - [L]

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.aspx$ $1 [NC,R=301]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.aspx -f
RewriteRule (.*) $1.aspx
By Jesper Lind

Hotfix för problem med valideringsfunktioner i .NET Ajax

Validerings-funktionerna i .NET har haft en del problem genom versionerna. I en version (har för mig att det var .NET 1.1) fungerade de knappt över huvudtaget. Men i 2.0 hade Microsoft löst de första problemen.

När sen MS Ajax släpptes blev det återigen en del buggar och problem. Det märkte jag häromdan när jag försökte ha validering på en TextBox i en wizard-kontroll som i sin tur låg inom en UpdatePanel. På första steget hade jag en TextBox med validering och där fungerade den fint. På andra steget så låg javascript-funktionerna kvar utanför UpdatePanel, men textboxen hade ju redan försvunnit och då blev det error som såg ut så här:

control has no properties
ValidatorGetValue("ctl00_mainContentPH_wizard_tbOrderId")WebResource.axd (line 104)
RequiredFieldValidatorEvaluateIsValid(span#ctl00_mainContentPH_wizard_ReqFieldOrderId)WebResource.axd (line 475)
ValidatorValidate(span#ctl00_mainContentPH_wizard_ReqFieldOrderId, "", null)WebResource.axd (line 208)
Page_ClientValidate("")WebResource.axd (line 128)
WebForm_DoPostBackWithOptions(Object)WebResource.axd (line 14)
if (typeof(control.value) == "string") {
 
Microsoft har dock gjort sitt bästa för att lösa även detta problem. Först så rekommenderades att man laddade ner en Validators.dll och mappade upp mot i Web.config.
 
Genom en kommentar hos Guttrie hittade jag info om en ny hotfix. Enligt erfarenhet när jag patchade ett Windows 2003-system fungerar den väldigt bra och man slipper att gör några ändringar i Web.config.
 
Om du inte orkar trixa för mycket med det och kan vänta så kommer en Windows Update snart med lösning.  

By Jesper Lind

SP2 till Windows Server 2003

Techworld skriver om att Service Pack 2 finns att ladda hem för Windows 2003. Det har varit en hel del frågetecken om denna uppgradering och hurvida men behöver avinstallera IE7 först eller inte. Se även IEBlog.

Fortfarande är jag inte helt säker på vad som gäller, men Fredrik Landin skriver om ett vertyg som Microsoft har släppt för att underlätta uppgraderingen. HotfixScanTool finns att ladda hem hos Microsoft och ska alltså hjälpa till att avgöra ifall man behöver avinstallera några komponenter innan man lägger in SP2.

By Jesper Lind

Perfmon-räknare saknar 32-bitars processer

Jobbar med ett kluster på tre Windows 2003-burkar. Vi har SQL Server installerade på två av dessa men operativsystemet är 32-bitar på den ena och 64-bitar på den andra.

Jag har försökt att övervaka hur databasen jobbar genom verktyget Perfmon men kunde inte se några räknare på 64-servern. Nu förstår jag varför.

Eftersom operativet är 64-bitar så laddas bara processer som körs i 64-läge. SQL Server 2000 ligger fortfarande och puttrar på 32-bitar och därför kom de inte med i Perfmon-listan.

Tony Rogersson's bloggpost var till stor hjälp för att komma till insikt med detta. Skriv helt enkelt in följande för att starta upp en Perfmon för 32-bitars-processer.

mmc /32 perfmon.msc

By Jesper Lind
1