jump to navigation

Service Application Unavailable 1 Μαρτίου 2007

Posted by Νικόλας in .NET, Windows.
Tags: , ,
add a comment

Προχθές, έκανα μία μικρή χαζομάρα – και δεν θυμάμαι γιατί την έκανα κιόλας. Είπα, να αλλάξω το password του IWAM_servername χρήστη. Είναι ο χρήστης κάτω από τον οποίο τρέχει ο IIS το .NET Framework

Αυτό που δεν ήξερα είναι ότι σε αντίθεση με τον IUSR_servername ο οποίος έχει blank password, ο IWAM_servername ΔΕΝ έχει blank password.

Για να μην τα πολυλογώ, αλλάζοντας το password του συγκεκριμένου χρήστη – και από όσα έμαθα στη πορεία και των υπόλοιπων χρηστών που φαίνονται στο topic – οι .ΝΕΤ εφαρμογές δεν μπορούν πλέον να τρέξουν.

Το θέμα είναι λοιπόν πώς λύνεις αυτό το πρόβλημα.

Η λύση είναι σχετικά απλή ακόμα και αν ο server ανήκει σε Domain.

Διαγράφεις τους χρήστες ASPNET, IWAM_servername και IUSR_servername και από το Add/Remove Programs επιλέγεις Repair για το .NET Framework (είτε πρόκειται για 1.1 είτε για 2.0). Με αυτή τη διαδικασία, δημιουργούνται ξανά οι χρήστες αυτοί.

Μετά το repair, μέσα από το φάκελο του .NET (π.χ. C:\WINNT\Microsoft.NET\Framework\v2.0.50727) εκτελούμε aspnet_regiis -i

Στο τέλος τρέχουμε το getpass.vbs που φαίνεται παρακάτω ή αυτό το exe, και βλέπουμε το password του χρήστη IWAM_servername το οποίο και βάζουμε στο Service ASP.NET Session State Service.

Επανεκίνηση και είμαστε έτοιμοι.

getpass.vbs

Dim IIsObject
Set IIsObject = GetObject («IIS://localhost/w3svc»)
WScript.Echo «According to the metabase, the anonymous credentials are:»
WScript.Echo » AnonymousUserName = » & IIsObject.Get(«AnonymousUserName»)
WScript.Echo » AnonymousUserPass = » & IIsObject.Get(«AnonymousUserPass»)
WScript.Echo » WAMUserName = » & IIsObject.Get(«WAMUserName»)
WScript.Echo » WAMUserPass = » & IIsObject.Get(«WAMUserPass»)
Set IIsObject = Nothing

αποθηκεύουμε ως getpass.vbs και με διπλό κλίκ το «τρέχουμε».

Χρήσιμα Links