piątek, 30 października 2009

Aplikacja serwera jest niedostępna

Czasem podczas korzystania z asp.net otrzymujemy inteligentny komunikat:

Aplikacja serwera jest niedostępna

jeżeli rozwiązania proponowane przez MS nie pomagają to polecam zrobić sobie listę aktualnie uruchomionych procesów w systemie (CTRL+SHIFT+ESC) a następnie ubijać po kilka i próbować odświeżyć stronę z interesującym komunikatem. Jeżeli po którymś ubijaniu ruszy - znaleziono przyczynę.

Sugerowane aplikacje do ubicia:
- Skype - skubany na porcie 80 coś tworzy (bodajże aktualizuje się?),
- IndicatorUty.exe - coś związanego z Fujitsu Siemens. Teoretycznie portu 80 nie przejmuje (przynajmniej netstat nie wskazuje nic na ten temat) jednak odpalić aplikacji nie można.

Gdyby komuś udało znaleźć się inny interesujący syf, to proszę o informację w komentarzach.

asp:Images w kontekście App_Themes

Zgodnie z dokumentacją MS (MSDN) w przypadku umieszczenia na stronie taga w postaci:

<asp:image runat="server" ImageUrl="graphics/info.jpg" id="test">

oraz skonfigurowanych styli następuje pobranie obrazka z katalogu aktualnego stylu. Niestety tak się nie dzieje.

Aby było możliwe dodanie grafiki w zależności od szablonu należy:

Opcja 1. Umieścić ją w klasie css (poprzez background-image), a klasę umieścić w jednym z plików css znajdujących się we właściwym podkatalogu katalogu App_Themes. Następnie klasę należy podpiąć do kontrolki. W efekcie powinien być widoczny zamierzony efekt.

Opcja 2. Utworzyć plik *.skin we właściwym podkatalogu katalogu App_Themes i opisać w nim 'wzór' kontrolki (wszystkie pola d/t wyglądu, bez np. ID, dodać należy runat="server") dodając atrybut SkinId. Ten sam atrybut należy umieścić we właściwym tagu na stronie aspx/w kontrolce ascx. Wtedy wszystko powinno zadziałać :)

(zakładam, że skonfigurowane jest w web.config używanie styli)

czwartek, 29 października 2009

Radary

Radar (samolot, statek, łódź?):
- bardzo kierunkowy - mała ilość "błyśnięć" wzajemnych pomiędzy 2 radarami,
- czasem nadaje liczbę losową - jeśli wróci coś innego, to nie my to wysłaliśmy.

Obsługa błędów przez ASP.NET

W ASP.NET często rzucane wyjątki warto ładnie obsługiwać. Brak jakiegokolwiek zajęcia się nimi prędzej czy później skończy się fatalnie dla programisty: poprzez wyjawienie newralgicznych danych lub też po prostu poprzez zyskanie złej opinii.

Jednym ze sposobów ukrycia błędów przed użytkownikiem jest prawidłowe skonfigurowanie sekcji customErrors w pliku web.config. Niestety mimo wielu prób nie udało mi się uzyskać tam informacji o ostatnim błędzie poprzez metodę:

Server.GetLastError();

Rozwiązaniem znalezionym przy pomocy google jest skorzystanie z Global.asax i metody application_Error.Tam wyjątek można zserializować i wrzucić do sesji, a następnie przekierować użytkownika do ładnie wyglądającej strony.

Może rozwiązanie nie idealne, ale dotychczas spełniające swoje zadanie.

Burza magnetyczna

Znalezione:
Burza magnetyczna

A co z ludźmi posiadającymi rozruszniki serca?

Klucze:
- zniszczenie całościowe (lub częściowe) sieci elektrycznych krajów uprzemysłowionych,
- brak zapasów w postaci transformatorów gotowych do użycia,
- czas produkcji jednej sztuki to 12 miesięcy (sic!)

Duża, odnotowana burza magnetyczna:
- przy burzy średniej wielkości szacowana ilość ludzi bez prądu - 130 milionów... 4x Polska.
- miała miejsce w roku 1859 (na przełomie sierpnia i września)
- prąd indukowany w przewodach pozwalał na przesyłanie wiadomości telegraficznych mimo odłączonych baterii
- zaczęło się od plam na Słońcu - po 18h dotarły do Ziemii
- burza takiej wielkości występuje średnio raz na 500 lat