Jeśli edytowałeś biblioteki DLL Internet Server rozszerzenia, może być zainteresowany to działa debugera, więc można śledzić jego wykonanie, ustawianie punktów przerwania lub wartości zmiennej monitora po nazywa się rozszerzenie. Wstawania Microsoft Internet Information Server (IIS) i systemem z biblioteki DLL w oknie Debuger jest nieco kłopotliwe. Musisz najpierw odnaleźć serwer cichym gdzie można debugować biblioteki DLL w kontrolowanych ustawienie. Po znalezieniu takich zasobów, można uruchomić debugowanie biblioteki DLL.
Ze względu na różnice w wersji 3.0 i 4.0 programu IIS należy sprawdzić, która wersja będzie używany do debugowania biblioteki DLL.
Wykonaj następujące kroki w celu debugowania serwera internetowego rozszerzenie DLL przy użyciu usług IIS 3.0:
-e W3Svc
Debugowanie porady
IIS mogą być uruchamiane jako wniosku interaktywne, co znacznie ułatwia debugowanie. W tym celu należy wprowadzić kilka zmian do systemu. Dla konta użytkownika, które zamierzasz uruchomić serwer mocy musisz dodać kilka uprawnień.
Aby dodać uprawnienia, należy uruchomić Menedżera użytkowników. (Jeśli korzystasz z systemu Windows NT 3.51, uruchom MUSRMGR.EXE. Jeśli używasz systemu Windows NT 4.0, uruchom usrmgr transport.EXE.) Kliknij Praw użytkownika z menu polityki . Zaznacz pole wyboru Pokaż zaawansowane prawa użytkownika . Następnie wybierz działanie jako część systemu operacyjnego z listy rozwijanej po prawej stronie i Dodaj konto użytkownika.
Powtórzyć ten proces z Generowania inspekcji zabezpieczeń (także na liście rozwijanej po prawej stronie). Upewnij się, że wszystkie usługi internetowe (WWW, ftp i gopher) są zatrzymywane i INETINFO.EXE nie jest uruchomiony (aby sprawdzić Użyj listy zadań). Wyloguj się i ponowne zalogowanie. Następnie można załadować usługi IIS z wiersza polecenia:
INetInfo.Exe -e W3Svc
Aby załadować program IIS w debugerze (na przykład w ramach WinDbg), użyj następującego wiersza polecenia:
WinDbg INetInfo.Exe -e W3Svc
Jesteś gotowy pójść. W Visual C++ wskaż polecenie Debug menu budować , a następnie kliknij przycisk Przejdź. Ta akcja uruchamia usługa publikowania w sieci WWW i debuger będą świadomi symbole w bibliotece DLL. Można zignorować ostrzeżenie, że plik nie ma, informacje o debugowaniu.
Po zamknięciu programu Visual C++, z wyjątkiem obszaru roboczego INETINFO.EXE. Uniknąć w ten sposób podczas ponownego ustawienia dla sesji debugowania. Wystarczy otworzyć INETINFO.MDS plik obszaru roboczego, gdy zechcesz ponownie uruchomić debugera.
Buforowane biblioteki DLL
Można dostosować ustawienie rejestru HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/usługi/W3SVC/parametry/CacheExtensions do serwera ponownie zainicjować biblioteki DLL każdym razem, gdy są one używane. Jeśli to ustawienie ma wartość 1, serwer będzie przechowywać biblioteki DLL załadowanych do pamięci tak długo, jak to możliwe. Jest to domyślne ustawienie dla serwera, ponieważ pomaga osiągnąć najwyższą wydajność serwera i powinny być zmienione tylko, jeśli używasz serwera dla debugowania. Jeśli ustawienie 0, serwer zawsze przeładuje bibliotek DLL rozszerzeń są stosowane przy każdym.
Wymuszanie na serwerze, aby ponownie załadować biblioteki DLL jest pomocne, gdy biblioteki DLL może awarii lub zachwiać dane poszczególnych wystąpień, które utrzymuje. Przez serwer zainicjować biblioteki DLL, biblioteka DLL można uzyskać wstecz, do przewidywalnego stanu przy minimalnym nakładzie pracy. Należy przetestować, biblioteka DLL przy użyciu normalnego ustawienia CacheExtensions, jednak do upewnij się, że kod w bibliotece DLL nie jest całkowicie zależne od tego stan początkowy.
Istnieje kilka sposobów na stworzeniu środowiska do debugowania składniki serwera i bibliotek DLL rozszerzeń serwera internetowego, korzystając z usług IIS w wersji 4.0 lub nowszej. Jeśli używasz debugera zdolne do dołączania do procesu systemu Windows NT, można użyć tej funkcji do debugowania części lub rozszerzenie. Na przykład jeśli podczas debugowania, w języku Visual C++, wykonaj następujące kroki:
Jeśli do procesu system Windows NT nie można dołączać debugera, którego używasz, podjąć następujące kroki, aby ustalić odpowiednie środowisko debugowania:
Debuger = lt; DebuggerExeName > gdzie DebuggerExeName jest pełną ścieżką do debugera jest używany.
Gdy uruchomiona jest usługa publikowania w sieci World Wide Web, debuger również zostanie uruchomiony. Można teraz ustawić odpowiednie punkty przerwania w Biblioteka DLL rozszerzenia serwera internetowego.
Użytkownik nie będzie mógł ustawić punkty przerwania w kodzie źródłowym składnika, dopóki składnik został załadowany do pamięci. Aby to zrobić, uruchom program Internet Explorer i widok.Strony ASP, zawierającej obiekt. Natychmiast po załadowaniu strony, należy ustawić punkty przerwania w składnik. Kliknij przycisk Odśwież , aby ponownie wyświetlić stronę i wyzwalania przerwania, które wybrano. Jeśli składnik nie można załadować jeszcze raz (na przykład, jeśli błąd występuje w części uruchamiania kodu), musisz załadować składnik biblioteki DLL przed do rozpoczęcia sesji debugowania. (Zobacz krok 11 poniżej).
W niektórych przypadkach nie można można używać jednej z dwóch procedur przedstawionych powyżej. Jeśli masz trudności przy użyciu jednej z tych strategii, istnieje podejście trzeciego, który został opisany w poprzednich wersjach usług IIS. Podejście to trzeci wymaga ustanowienia uprawnieniami zabezpieczeń Windows NT jak również wprowadzania zmian w rejestrze. Będzie także wyłączyć możliwość usługi IIS są uruchomione jako usługa. To podejście powinno być używane wyłącznie jeżeli poprzednich dwóch strategii.
{61738644-F196-11D0-9953-00C04FD919C1} / / IIS WAMREG admin Service
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / IIS Admin Crypto rozszerzenie
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / usługi IISADMIN
Słowo kluczowe LocalService można znaleźć w dodatkowych podkluczy AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
w3svc -e
Uwaga Po zakończeniu sesji debugowania, należy wycofać kroki od 5 do 1 Aby przywrócić poprzednie ustawienia i umożliwić usługi IIS są uruchamiane jako usługa.
Uwagi techniczne przez liczbę |nbsp; Uwagi techniczne według kategorii