by Njål

Fixing HttpException 0x80004005 / COMException 0x80070001

When getting HttpContext.Current.Request.Params in a C# .NET IIS website – we got this error several times a day:

System.Web.HttpException (0x80004005): An error occurred while communicating with the remote host. The error code is 0x80070001. —> System.Runtime.InteropServices.COMException (0x80070001): Incorrect function. (Exception from HRESULT: 0x80070001)
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[] buffer, Int32 offset, Int32 size)
at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.GetMultipartContent()
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.EnsureForm()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.FillInParamsCollection()
at System.Web.HttpRequest.GetParams()

 

Turns out that this is related to various offloading done by the Network Card (NIC) – meaning that the NIC is doing stuff on its own which the OS/IIS doesn’t always like. Go to the network card properties – and disable these features:

  • Flow Control
  • Ipv4 Checksum Offload
  • Large Send Offload V2 (IPv4)
  • Large Send Offload V2 (IPv6)
  • TCP Checksum Offload (IPv4)
  • TCP Checksum Offload (IPv6)
  • UDP Checksum Offload (IPv4)
  • UDP Checksum Offload (IPv6)

 

image

 

Also – make sure you disable Power Management for the NIC.

image

 

 

by Aage Andre

Server-virtualisering

Hva er server-virtualisering?
Server-virtualisering gir oss muligheten til å kjøre flere virtuelle maskiner på en fysisk server. Hver virtuelle maskin er fullstendig isolert fra de resterende og er helt frigjort fra det underliggende operativsystemet via en Hypervisor. Det betyr at hver virtuelle maskin kan kjøre forskjellige operativsystemer og applikasjoner uavhengig av hva det underliggende operativsystemet gjør og hva de andre kjører.

Siden de virtuelle maskinene er helt isolert fra underliggende operativsystem kan man også flytte de fra en fysisk server til en annen mens den er online i de fleste tilfeller.

Aktører
Det er i dag 3 store aktører innen virtualisering.

Vmware har lenge vært på banen og er nå ute med vSphere(tidligere ESX), den fjerde versjonen av sitt virtualiserings-OS. I tillegg har de en gratisversjon av ESXi, en linux-basert distribusjon med begrenset styring og hardware støtte, men som sagt helt gratis, og det med fullverdig konsoll.

Citrix er mest kjent for sine terminal-server løsninger med balansering, applikasjons-styring og deling.  Citrix XenServer er en fullstendig virtualiseringsplattform som kjører på deres egen Xen hypervisor.

Microsoft kom i oktober 2008 med Hyper-V.  Hyper-V kjøres som en plattform på Windows Server og kommer integrert i Windows Server 2008 R2. Stand-alone versjonen kommer som en del av Core-versjonen av Server 2008 som inkluderer full Hyper-V støtte, men da kun i CLI(Command Line Interface)

Generelt
De siste årene har virtualisering av serverparker blitt mer og mer aktuelt. Etterhvert som hardware blir kraftigere og vi putter mer og mer ‘oomph’ på samme plass uten at hardware-kravene til underliggende operativsystemer øker like mye, ligger mye ressurser ubrukt. Samtidig øker kravene om at servicer trenger dedikerte servere, både for enklere administrasjon og fordi tjenestene ikke vil operere under samme tak, spesielt i MS Windows-miljøet. I tillegg til dette er strømsparingen ett godt argument. En “gammeldags” serverpark med 3-4 filservere, database-server, domenekontroll og 5 terminalservere(evnt blade-senter) kan nå legges inn under to fysiske bokser og man har plutselig spart ~30.000 i året bare i strøm pga mindre strømkrevende hardware og billigere kjøling.

Det kanskje største plusset med virtualiseringen er dynamisk ressurs deling.  Med alt under ett sett fysisk  hardware er det lettere å flytte ressurser utifra behov og hvordan bedriften endrer seg. Flere av alternativene støtter også full-dynamikk på dette, slik at hver virtuelle maskin kan ta og gi ressurser fra/til host operativsystemet mens alt er online og uten noen påvirkning fra andre.*

Virtualisering for alle
Frem til nå har virtualisering vært sett på som noe de virkelig store bedriftene driver med. Ett fryserom av en server med 30 fysiske prosessorer og kretskort på størrelse med nordmarka skal dele ut ressursene til de 2000 ansatte og deres behov.
Dette går det mer og mer mot en slutt på med ny teknologi. I skrivende stund er det ikke uvanlig med 12 kjerner i en enkel tower-server og RAM man putter i kan begrenses omtrent bare med hvor triggerhappy it-admin er på bestillingsknappen. Med det har SMB-markedet fått opp øynene for virtualisering.
Ett godt eksempel  kan være en liten bedrift med 10-12 ansatte hvor man trenger sentral administrasjon av klienter, fil-deling, mail-server og kanskje terminalserver.  Dette krever de samme tjenstene som en bedrift med 5 ganger så mange ansatte. Problemet er at en bedrift med 10-12 ansatte stort sett ikke ønsker bruke hundretusener på å sette opp en park med 4-5 servere og alt det som følger med av kjøling, redundancy osv. Siden det er så få ville det stort sett gå greit å putte alle tjenester inn under en installasjon slik man har gjort tidligere, men det er vanskeligere å administrere og følge opp ressursbruk, samt at man da krever at alle underapplikasjoner kjører samme arkitektur, spesielt om man har f.eks. MS Exchange og SQL. Det hele blir plutselig mye mer oversiktlig og lettere å administrere når du deler opp servicene og gir de egne ressurser å jobbe med, hvor administrator kan tildele utifra behov.