Ostatnio walczyłem z bardzo dziwnym problemem - query AJAXowe w IE przy pierwszym callu nie zwracały żadnego wyniku, pomimo, że w Firefox i Chrome wszystko pięknie bangla. Debug - nic, wszystko OK, brak problemów. Do tego problem występuje na teście i produkcji, nie da się go na localhoscie powtórzyć. A problem dotyczy wyłącznie jednego widoku a co najmniej w 10 zbudowanych na podobnych zasadach jest OK, a zatem WTF?!? Po całkiem długim googlaniu udało mi się znaleźć informację o możliwości podejrzenia w IIS jakie query pracują po stronie serwera.
Po otwarciu IISa należy wejść w Worker Process, znaleźć interesującą pule i ją otworzyć. Widzimy wtedy wszystkie aktualnie przetwarzane requesty wraz z ich stanem. I tu doszedłem do ciekawej sytuacji - IIS utyka w RequestAcquireState aż do timeout'u.
Googlanie ponowne i informacja o tym, że IE nie ustawia jakiegoś(?) cookie (sorry to było z miesiąc temu w detalach nie pamiętam) i przez to aplikacja nie wykonuje RequestEnd. Mając tą wiedzę ponownie Google Fu. I tu niesamowite zaskoczenie - Microsoft przyznaje się do błędu w .NET (w wersjach aż do 4.5 włącznie). Dopiero w .NET 4.5.1 rozwiązano trwale ten problem. I faktycznie - instalacja nowszego .NETa niż używany do tej pory (upgrade z 4.5 do 4.5.1) rozwiązał problem. Wg stron Microsoftu istnieje jakieś KB, ale nie udało mi się go znaleźć na stronach M$ do ściągnięcia. W sieci można znaleźć jakieś paczki na innych serwerach niż M$owe, ale to zbyt duże ryzyko. Nie wiadomo co tak naprawdę w nich siedzi.
piątek, 28 lutego 2014
niedziela, 23 lutego 2014
O żywieniu na świecie
Ciekawie o żywieniu i jego kosztach na świecie:
Oryginalny post:
http://widelcempomapie.blox.pl/2014/02/Zakupy-na-7-dni-co-sie-je-na-swiecie.html
Źródło:
https://www.facebook.com/media/set/?set=a.742272545790437.1073741826.519237608093933&type=1&l=21a341367a
Oryginalny post:
http://widelcempomapie.blox.pl/2014/02/Zakupy-na-7-dni-co-sie-je-na-swiecie.html
Źródło:
https://www.facebook.com/media/set/?set=a.742272545790437.1073741826.519237608093933&type=1&l=21a341367a
środa, 19 lutego 2014
SiteMap + KendoUI + MVC + WebForms + lokalizacje = problemy
W ostatnich dniach stanąłem przed zadaniem wdrożenia do istniejącej aplikacji w WebForms, ASP.NET MVC dla nowych funkcjonalności. Oprócz MVC, wykorzystuję Kendo UI. Wdrożenie nowych podstron wymagało niestety przepisania dwóch kontrolek - o ile formatka do wyświetlania informacji o błędach okazała się pikusiem, o tyle menu, zależne od zestawu ról użytkownika, zlokalizowane (możliwość obsługi wielu języków) nie jest już taka trywialna. Oczywiście można skopiować sitemap i przepisać ją do wykorzystania MvcSiteMap Provider. Tylko po co mnożyć byty? To się przecież MUSI dać zrobić. Opinie znalezione z Google mówią, że się nie da. Przynajmniej nie "out of the box" z kontrolką KendoUI Menu. No dobra. Nie dają defaultowo wsparcia, ale może jednak jakoś się da... Odczyt pliku zawierającego sitemap jest dość dobrze opisany (np. tu).
Podstawa odczytu to poniższy fragment kodu:
To co zrobiliśmy właśnie to załadowanie do statycznego obiektu naszej sitemapy. Różnica pomiędzy tą zaimplementowaną przez KendoUI i .NET polega na tym, że Kendo nie jest wstanie automatycznie przetłumaczyć wpisów z pliku .resx podpiętych do taga resourceKey. Ponadto brakuje ról a adresy do stron ASPX mają \ zamiast /. Niestety właściwości title, po odczycie, będą null'ami. Bez tego, mimo sukcesu przy odczycie, nie uda się ustawić nazw pozycji. Konieczne jest przeiterowanie kolekcji node'ów i odczyt z atrybutów resourceKey.
Problematyczne okazało się ucinanie wierszy w przypadku, gdy użytkownik nie ma danej roli. Usuwanie node'a nie dawało sukcesu. Dopiero ustawienie Visibility = false, gdy właściwość Text jest null'em z poziomu cshtml'a dało pożądany rezultat.
3 dni walki, ale rezultat jest satysfakcjonujący.
Podstawa odczytu to poniższy fragment kodu:
if(!SiteMapManager.SiteMaps.ContainsKey("WebSiteMap"))
{
SiteMapManager.SiteMaps.Register("WebSiteMap", sitemap => sitemap.LoadFrom("~/Web.sitemap"));
}
To co zrobiliśmy właśnie to załadowanie do statycznego obiektu naszej sitemapy. Różnica pomiędzy tą zaimplementowaną przez KendoUI i .NET polega na tym, że Kendo nie jest wstanie automatycznie przetłumaczyć wpisów z pliku .resx podpiętych do taga resourceKey. Ponadto brakuje ról a adresy do stron ASPX mają \ zamiast /. Niestety właściwości title, po odczycie, będą null'ami. Bez tego, mimo sukcesu przy odczycie, nie uda się ustawić nazw pozycji. Konieczne jest przeiterowanie kolekcji node'ów i odczyt z atrybutów resourceKey.
Problematyczne okazało się ucinanie wierszy w przypadku, gdy użytkownik nie ma danej roli. Usuwanie node'a nie dawało sukcesu. Dopiero ustawienie Visibility = false, gdy właściwość Text jest null'em z poziomu cshtml'a dało pożądany rezultat.
3 dni walki, ale rezultat jest satysfakcjonujący.
sobota, 1 lutego 2014
Odkurzacz ELECTROLUX ZEO 5430
Kupiłem ostatnio odkurzacz ELECTROLUX ZEO 5430 - długo szukałem taniego i dobrego i wygląda na to, że to dobry wybór (po 2 tygodniach użytkowania).
Zalety:
Wady:
Zalety:
- dużo szczotek (poza standardowymi 3 małymi, są 3 większe)
- dobry ciąg nawet na małej mocy
- podgumowane kółka
- bardzo dobry stosunek cena/jakość - już za 250 zł można go nabyć
Wady:
- pierwsze wrażenie co do jakości wykonania budzi wątpliwości (plastiki)
- mógłby być cichszy
Subskrybuj:
Posty (Atom)