RSS

Blog

Projektowanie oprogramowania w świecie .NET. Agile, OOP, wzorce projektowe, DDD, ORM, TDD, AOP i inne...

ASPNETDB.MDF read-only

1 listopada 2006 Odsłon: 1152

Spotkałem się wczoraj z bardzo dziwnym problemem przy tworzeniu strony w ASP.NET, korzystającej z wbudowanych mechanizmów logowania. Rozwikłanie tego zajęło mi ładnych kilka godzin i do tej pory nie znam jeszcze wszystkich przyczyn moich kłopotów. Może komuś poniższe informacje się przydadzą gdyby napotkał na taki sam problem.

Wszystko zaczęło się od wstawienia na stronę kontrolki do logowania i włączenia Forms Authentication w web.config. Wcześniej oczywiście odpaliłem aspnet_regsql.exe i stworzyłem bazę dla wbudowanych mechanizmów autoryzacji ASP.NET. Jak wiadomo, w takim przypadku ASP.NET tworzy w katalogu App_Data naszej strony plik ASPNETDB.MDF - bazę typu user instance, w której przechowywane są m.in. dane użytkowników. To jest standardowe podejście i nigdy nie miałem z tym problemów - aż do teraz...

Problem uaktywnił się po utworzeniu w IIS katalogu wirtualnego dla strony i ustawieniu w Start Options - Use custom server (http://localhost...) zamiast serwerka wbudowanego w Visual Studio (na którym wszystko działało bez zarzutu). Ku swojemu zdziwieniu, przy próbie zalogowania otrzymywałem komunikat "incorrect user name or password". Natomiast po wybraniu opcji przypomnienia hasła, ASP.NET rzucał wyjątek z komunikatem: "update of ASPNETDB.MDF failed because the database is read-only". O co chodzi?

Zanim z pomocą znajomych udało mi się to rozwiązać, wypróbowałem chyba wszystkie wskazówki jakie znalazłem w sieci plus trochę własnych pomysłów - w sumie chyba kilkadziesiąt prób... Najpierw sądziłem, że obecność dwóch instancji SQL Server 2005 może powodować jakieś komplikacje - reinstall. Potem podejrzewałem (i chyba częściowo słusznie) IIS - reinstall. Potem .NET Framework - repair. Z użyciem Filemona analizowałem dostęp do problematycznego pliku - nadal zero sensownych wniosków.

Próbowałem przeróżnych ustawień w konfiguracji SQL Server, attach i detach bazy, dodawanie loginów i użytkowników. Grzebałem w web.config i machine.config, connection stringach do bazy oraz w konfiguracji IIS i katalogów wirtualnych. Przerabiałem projekty w Visual Studio i tworzyłem nowe żeby wytestować sprawę. I wiele, wiele innych podejść, a i tak zawsze dostawałem ten sam złowieszczy komunikat. Co gorsza, inni nie mieli żadnych kłopotów tego rodzaju na swoich systemach.

W końcu za radą kumpla - Bartka, spróbowałem pogrzebać w uprawnieniach NTFS do katalogów. Opcje folderów -> Widok -> Simple file sharing off, a potem przydzieliłem uprawnienia wszystkim do wszystkiego (Właściwości -> Zabezpieczenia) na katalogu ze stroną oraz na App_Data i... zadziałało! Nadal nie wiem jednak, co było przyczyną odbierania tych uprawnień. Najbardziej prawdopodobna wydaje się tu wina IIS, który mógł coś w ten sposób zabezpieczać. Tylko dlaczego u innych ten problem nie występował?

Dodam, że to wszystko działo się na laptopie z Windows XP SP2, IIS 5.1, Visual Studio 2005 Professional, SQL Server 2005 & SQL Server 2005 Express. Mam nadzieję, że jeśli ktoś napotka na taki sam kłopot, to powyższy tekst pomoże mu zaoszczędzić te kilka godzin...

Tagi:

Komentarze

Aktualizacja danych...
Tomek
2009-06-02 22:30

Niech CI Pan Bóg w dzieciach wynagrodzi ten wpis. Niech słońce zawsze nad tobą świeci i niech kochają cie wszystkie matki twoich nie narodzonych dzieci.

A tak po za tym to straciłem z 24h na ten problem, a rozwiązanie jak zwykle było tak absurdalne, że nie mieści mi się to w głowie. Dobra idę się napić z tego powodu :) Twoje zdrowie...

Tommy41
2009-03-05 14:48

Podziękowac!!!

Kuba
2007-11-19 01:03

Dzięki ci za ten wpis , skróciło mi to szukanie dziury :)

Aktualizacja danych...

Kontakt CV

Ja

Rafał Barszczewski
rb07 at interia.pl
gg: 1242248

Sonda

Jakiego O/R mappera używasz najczęściej w .NET?







Aktualizacja danych...

RSS

20 września 2008

Jak widać, spore zmiany. Zaimplementowałem najważniejsze funkcjonalności, które powinien mieć każdy silnik blogów, a których do tej pory u mnie brakowało. Chodzi mi tu przede wszystkim o tagi i RSS. Poza tym strona startowa bloga będzie teraz wyświetlać najnowszego posta, a na panelu bocznym pojawiła się lista ostatnich wpisów.

Ponadto, postanowiłem wznowić pisanie postów (a właściwie je rozpocząć - bo na dobrą sprawę nigdy poważnie nie zacząłem). W końcu w jakimś celu to wszystko zaprogramowałem ;) Tematyka, którą będę chciał w najbliższym czasie poruszyć, obejmuje zagadnienia związane z projektowaniem i testowaniem aplikacji oraz metodykami i narzędziami, które te procesy wspomagają. Zapewne najwięcej będzie o Domain-Driven Design i Test-Driven Development, choć spróbuję podejść do tych tematów bardzo pragmatycznie (technicznie). Mam też plan, żeby w miarę pisania kolejnych części powstawała konkretna, przykładowa aplikacja, która mogłaby posłużyć jako case-study. Co z tego wszystkiego wyjdzie - zobaczymy niebawem.

13 kwietnia 2007

Nie doszedł (na razie) żaden nowy wpis, ale za to przeorganizowałem trochę ten dział. Na głównej podstronie znajdują się teraz same nagłówki wpisów, a całość możemy przeczytać (i skomentować) po przejściu do szczegółów.

21 października 2006

Pierwszy, historyczny wpis w moim blogu. Od tej pory postaram się regularnie dodawać nowe posty. A już niedługo - moje wrażenia z Microsoft Technology Summit (24-25.10).