IE11

I ponownie post związany z ContentType. Tym razem problemem było to, że pewna aplikacja webowa pod IE11 nie wyświetlała się całkowicie. HTML nie był renderowany a dodatkowe style i skrypty nie były ładowane. WTF można by rzec?

Szczerze to na początku podejrzewałem brak wsparcia dla conditional comments. Kod miał je użyte, a kod strony renderował się tak, jakby było w nim wiele elementów html i to powodowało problem. Dodatkowo Developers Tools w IE na ten tor mnie skierowało, bo komunikat mniej więcej tej treści wyświetlał w swojej konsoli. Usunięcie ich nic jednak nie dawało, tak więc porzuciłem tę drogę. W ruch poszedł fiddler i wszystkie inne narzędzia, które miałem pod ręką aby tylko odkryć co jest przyczyną.

Teraz już nie pamiętam co, ale w pewnej chwili uwagę moją przykuł content-type ustawiony jako application/xml. Chwila zastanowienia i kurde przecież to strona więc raczej powinno być text/html. Co prawda w request’ie był ustawiony taki typ jako pożądany, ale dopiero na drugim miejscu. Podstawowym był prawidłowy – text/html. Trochę szukania gdzie może być rozjazd i jak się okazało powodem takiej sytuacji tym razem był plik .browser. Dokładnie mobile.browser umieszczony w App_Browser. Dodatkowo z niewspieranego już projektu z CodePlexa’a – Mobile Device Browser File. Zatem tym razem Olek miałby rację sugerując tę drogę. Wyrzucenie go nie wchodziło w rachubę, bo nie wiedziałbym jaki będzie miało to wpływ na pozostałe działanie aplikacji – co by nie było mogła używać tych ustawień do określenia sposobu działania. Chciałem minimalnym kosztem naprawić błąd.

Czytaj więcej – HttpResponse.ContentType – ciekawe zachowanie

Z powodu braku (lub błędnych wpisów) IE11 wykrywany był jako mobilna przeglądarka i content-type i zawartość była zwracana jako application/xml. Oczywiście są wpisy jak to zrobić na Stack Overflow, ale nawet po ich dopisaniu i restarcie IIS’a nie chciało działać. Dla mnie tymczasowym rozwiązaniem jest zamiana wszystkich application/xml na text/html w mobile.browser – sporo ich dlatego nawet nie ma co próbować tego ręcznie. Finalnie trzeba będzie jednak jakoś z tym błędem się rozprawić prawidłowo a najlepiej to chyba będzie pozbyć się pliku .browser. Na razie jednak rozwiązanie działa. W wolnej chwili trzeba będzie zerknąć na to dogłębniej.

Jak ktoś będzie miał podobne efekty na IE11 to będzie wiedział gdzie szukać.