Piotr Szczepanik – programowanie (.Net, C#, SQL), administracja, IT

blog IT: programowanie, administracja
Nie będę opisywał ani sensu stosowania, ani zalet / wad mechanizmu kompresji HTTP. Opiszę jedynie sposób na implementację tego rozwiązania na serwerze IIS 6.

1. Włączanie kompresji dla witryn w IIS

Przechodzimy do „Menedżera internetowych usług informacyjnych (IIS)„. Klikamy prawym klawiszem na „Witryny sieci Web” i wybieramy polecenie „Właściwości„. Klikamy na zakładkę „Usługa„.

W sekcji „Kompresja protokołu HTTP” zaznaczamy pola:

- Kompresuj pliki aplikacji,

- Kompresuj pliki statyczne.

Możemy dodatkowo ograniczyć maksymalny rozmiar katalogu tymczasowego do wybranej przez nas wartości. W przypadku gdy włączymy tą opcję, a rozmiar katalogu osiągnie podaną wartość starsze pliki tymczasowe będą zastępowane nowymi.

2. Dodawanie rozszerzenia usługi Web

Przechodzimy do „Menedżera internetowych usług informacyjnych (IIS)„. Klikamy prawym klawiszem na „Rozszerzenia usługi sieci Web” i wybieramy polecenie „Dodaj nowe rozszerzenie usługi sieci Web„.

Podajemy nazwę rozszenia, np. HTTP Compression.

Klikamy na przycisk „Dodaj” i wskazujemy plik: C:\WINDOWS\system32\inetsrv\gzip.dll

Uwaga: ścieżka do pliku gzip.dll może ulec zmianie w zależności od systemu.

Zaznaczamy „Ustaw stan rozszerzenia na ‘dozwolone’” i klikamy na „OK„.

3. Konfigurowanie rozszerzeń podlegających kompresji

Przechodzimy do katalogu c:\Windows\System32\inetsrv .

Na wszelki wypadek wykonujemy kopię pliku MetaBase.xml, a następnie otwieramy oryginalny plik do edycji.

Odnajdujemy sekcję „IIsCompressionScheme” dotyczacą kompresji gzip, czyli sekcję z atrybutem „Location” ustawionym na wartość „/LM/W3SVC/Filters/Compression/gzip„.

Odnajdziemy sekcję podobną do poniższej:

 XML |  kopiuj kod |? 
01
<IIsCompressionScheme 
02
Location ="/LM/W3SVC/Filters/Compression/gzip"
03
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
04
HcCreateFlags="1"
05
HcDoDynamicCompression="TRUE"
06
HcDoOnDemandCompression="TRUE"
07
HcDoStaticCompression="TRUE"
08
HcDynamicCompressionLevel="0"
09
HcFileExtensions="htm
10
html
11
txt"
12
HcOnDemandCompLevel="10"
13
HcPriority="1"
14
HcScriptFileExtensions="asp
15
dll
16
exe"
17
>
18
</IIsCompressionScheme>

W atrybucie "HcScriptFileExtensions" konfigurujemy pliki o jakim rozszeżeniu mają podlegać kompresji HTTP.

Zapisujemy zmodyfikowany plik i od tej pory możemy cieszyć się dobrodziejstwami kompresji HTTP.
„One or more users currently use this mailbox store. These users must be moved to a different mailbox store or be mail disabled before deleting this store.”

Jeżeli podczas próby odinstalwoania serwera Exchange z systemu Windows 2003 Server jesteśmy raczeni powyższym komunikatem znaczy to, iż musimy pousuwać atrybuty serwera Exchange z kont użytkowników w AD.

Jak to zrobić? Przechodzimy do przystawki MMC Active Directory Users & Computers. Klikamy prawym klawiszem na wybranym użytkowniku i wybieramy „Exchange Tasks„. Z dostepnych opcji wybieramy „Remove Exchange Attributes„.

Wyszukiwanie użytkowników z atrybutami serwera Exchange

Jeżeli nie wiemy, którzy użytkownicy posiadają atrybuty serwera Exchange możemy ich łatwo odszukać kożystając z funkcji wyszukiwania obiektów w AD.

Przechodzimy do przystawki Active Directory Users & Computers, klikamy prawym klawiszem na najwyższym elemencie drzewka i wybieramy opcje „Find„. Przechodzimy do zakładki „Advanced„. Klikamy na przycisku „Field„, a nastepnie wybieramy User > Exchange Home Server. W pole „Value” wpisujemy nazwę serwera Exchange. Klikamy na przycisku „Add„. Teraz możemy wyszukać wszystkich użytkowników, do których przypisane są trybuty serwera Exchange.
Aby zmienić miejsce logowania informacji z serwera ISC DHCP wykonujemy następujące czynności.

1. Do pliku konfiguracyjnego serwera dhcp – dhcpd.conf – dodajemy następującą linijkę:

log-facility local7;

2. Do pliku /etc/syslog.conf dodajemy wpis:

local7.* /var/log/dhcpd.log

Restartujemy syslog (killall -1 syslogd), restartujemy serwer DHCP i od teraz komunikaty dhcp trafiają do oddzielnego pliku.
Załóżmy, iż administrujemy siecią, w której adresy IP nadawane są przez nasz serwer DHCP.

Cała sieć jest jednym bridge’m. Wszystko pracuje pod kontrolą platformy MikroTik.

Nagle ktoś z użytkowników sieci uruchamia swój serwer DHCP. No i mamy problem….

Ale od czego mamy system MikroTik ? Zakładamy na urządzeniach, na interfejsie bridge następujący filtr:

chain=forward action=drop

src-mac-address=!XX:XX:XX:XX:XX:XX/FF:FF:FF:FF:FF:FF mac-protocol=ip

dst-port=68 ip-protocol=udp

gdzie XX:XX:XX:XX:XX:XX to MAC adres naszego serwera DHCP.
Czy zdarzały Ci się utraty zawartości sesji (w trybie InProc) w swojej aplikacji ASP.Net ?

Jedną z przyczyn takich zdarzeń może być fakt restartu aplikacji webowej.

Możliwe przyczyny restartu aplikacji:

  • modyfikacja któregoś z plików: machine.config, web.config, global.asax; w niektórych przypadkach programy antywirusowe mogą powodować, iż pomimo braku modyfikacji zawartości tych plików serwer dokona restartu aplikacji,
  • modyfikacja plików w katalogu bin aplikacji,
  • pliki ASP.Net (np. aspx, asmx) zostały zmodyfikowane, a w rezultacie przekompilowane więcej razy niż wskazuje sekcja compile -> numRecompilesBeforeApprestart pliku machine.config; domyślnie wartość ta jest dosyć niska, dlatego w przypadku gdy często dokonujemy aktualizacji naszych plików aplikacji na serwerze zaleca się jej zwiększenie,
  • wewnątrz katalogu aplikacji został utworzony / skasowany / lub została zmieniona nazwa innego katalogu,
  • pula aplikacji (AppPool) w IIS jest skonfigurowana tak, aby odświeżanie aplikacji (app recycle) wykonywane było zbyt często; aby zmodyfikować wartości odświeżania należy przejść do menadżer internetowych usług informacyjnych > pule aplikacji > [pula naszej aplikacji]  > prawy klawisz myszki - Właściwości : zakładka Odświeżanie.
W przypadku używania trybu InProc do przechowywania stanu sesji, gdy w IIS używamy (Ogrodu sieci Web garden) mogą nastąpić utraty stanu sesji bez restartu aplikacji. W takim przypadku musimy sprawdzić czy wartość Maksymalna liczba procesów roboczych dla puli naszej aplikacji nie jest ustawiona na liczbę większą od 1.

Aby przejść do konfiguracji Ogrodu sieci: menadżer internetowych usług informacyjnych > pule aplikacji > [pula naszej aplikacji]  > prawy klawisz myszki - Właściwości : zakładka Wydajność, sekcja Ogród sieci Web.