TN063: Internet uzantısı dll dosyalarını ayıklama

Bir Internet sunucusu uzantısı dll yazdım, o yüzden uzantısı denir sonra onun yürütme, set noktalarını veya monitör değişken değerlerini izleyebilirsiniz hata ayıklayıcı altında çalışan almakla ilginizi çekebilir. Microsoft Internet Information Server (IIS) kalkarken ve hata ayıklayıcı dll ile çalışan biraz zor. İlk sessiz bir sunucunun nerede kontrollü bir ortamda dll hata bulmak gerekecek. Bir kez böyle bir kaynak bulduk, sen-ebilmek başlamak hata ayıklama dll.

Sürüm 3.0 ve IIS 4.0 arasındaki farklılıklar nedeniyle, dll dosyanızın hatalarını ayıklamak için kullanacağınız sürümünü bilmek önemlidir.

Hata ayıklama kullanarak Internet Information Server (3.0 ve önceki)

Bir Internet sunucusu uzantısı dll IIS 3.0 kullanarak hata ayıklamak için aşağıdaki adımları izleyin:

  1. IIS Yöneticisi'ni kullanarak veya Windows NT Advanced Server Denetim Masası'nda hizmetler simgesi olan hizmetler durduruluyor IIS Yayımlama hizmetlerini durdurun. Düz-se bile sen yalnızca World Wide Web Yayımlama hizmeti uzantıları ayıklaması tüm üç Hizmetleri durdurmanız gerekir unutmayın. İşleri kolaylaştırmak için öylesine sen-ebilmek kaçmak bu adım sizin gelişiminde "El ile" Denetim Masası'nda başlatılan hizmetler yapmak isteyebilirsiniz.

  2. Microsoft Visual C++'ı başlatın ve açılmış herhangi bir çalışma alanını kapatmak için Dosya menüsünde Yakın çalışma komutunu tıklatın.

  3. Dosya menüsünde INETINFO açmak için Çalışma alanını açın .exe programı. Bu dosya Microsoft Internet Information Server yüklü olduğu dizinde olduğunu.

  4. Proje menüsünde, Ayarlar' ı tıklatın, sonra Proje ayarları iletişim kutusunda hata ayıklama sekmesini tıklatın.

  5. Kategori kutusunda seçili Genel ile aşağıdaki Program değişkenleri metin kutusuna yazın:

    -e W3Svc

  6. Ek dll Kategori aşağı açılır listeden seçin. Ardından Yerel adları kutusunda, adı uzantı DLL'si veya DLL'ler. her yanındaki onay kutusunun işaretlenmiş emin olun ve tam yolu belirtin.

  7. Proje ayarları iletişim kutusunu kapatmak için Tamam ' ı tıklatın.

  8. Emin olun.pdb, dll sen plan-e hata ayıklama dll dosyaları aynı dizinde dosyasıdır.

İpucu hata ayıklama

IIS, etkileşimli uygulama yapmak çok daha kolay hata ayıklama çalıştırılabilir. Bunun için sisteminize birkaç değişiklik yapmanız gerekir. Sunucu altında çalıştırmak için gidiyoruz kullanıcı hesabı için bazı ayrıcalıklar eklemeniz gerekiyor.

Ayrıcalıklar eklemek için Kullanıcı Yöneticisi'ni çalıştırın. (Windows NT 3.51 kullanıyorsanız, musrmgr çalıştırın.EXE. Windows NT 4.0 kullanıyorsanız, usrmgr çalıştırın.EXE.) Kullanıcı hakları ilkeleri menüsünü tıklayın. Gelişmiş kullanıcı haklarını göster onay kutusunu seçin. Daha sonra işletim sisteminin parçası olarak sağ aşağı açılan listeden seçin ve kullanıcı hesabı ekleme.

Bu işlem ile Güvenlik denetimleri oluştur (Ayrıca sağ tarafta açılan liste) tekrarlayın. Tüm Internet hizmetlerini (www, ftp ve gopher) durdurulduğundan emin emin olun ve INETINFO.exe çalışmıyor (TLIST denetlemek için kullanın). Oturumu kapatın ve yeniden oturum açın. Ardından IIS komut satırı ile yükleyebilirsiniz:

Inetinfo.exe -e W3Svc

IIS altında bir hata ayıklayıcı (örneğin altında WinDbg) yüklemek için aşağıdaki komut satırını kullanın:

WinDbg Inetinfo.exe -e W3Svc

Sen are anık gitmek. Visual c++ için Debug Build menüsünden ve sonra Git' i tıklatın. Bu eylem www yayımlama hizmetini başlatır ve hata ayıklayıcı dll içindeki simgeler farkında olacak. Uyarı hata ayıklama bilgisi dosyası yok sayabilirsiniz.

Visual C++'ı kapattığınızda, çalışma alanını INETINFO için kaydedin.EXE. Bu şekilde, siz ayarları için hata ayıklama oturumu dizilimini. INETİNFO açmanız yeterlidir.Hata ayıklayıcı yeniden başlatmaya hazır olduğunuzda mds çalışma alanı dosyası.

Önbelleğe alınan DLL'leri

HKEY_LOCAL_MACHINE/system/CurrentControlSet/Hizmetleri/W3SVC/parametreler/dll dosyalarını yeniden kullanıldıkları her zaman sunucu için CacheExtensions kayıt defteri ayarını ayarlayabilirsiniz. Bu ayar 1 ise, sunucu DLL yüklü içinde bellek mümkün olduğu sürece devam edecektir. Çünkü, sunucunun en yüksek performansı elde etmek yardımcı olur ve hata ayıklama için sunucu kullanıyorsanız, yalnızca değiştirilmesi gereken, sunucu için varsayılan ayardır. Yaptığınız ayar 0, sunucu her zaman yeniden uzantısı dll dosyaları her zaman onlar kullanılır.

Dll kilitleniyor veya bu tutar herhangi bir örneği başına veri üzüyor dll yeniden sunucuya zorlama yararlıdır. dll yeniden başlatmak için sunucu zorlayarak, dll dosyanızın geri öngörülebilir bir devlet küçük bir çaba ile alabilirsiniz. Normal CacheExtensions ayarı kullanarak dll, ancak emin olmak için dll kodunu ilk devlet üzerinde tamamen bağımlı değildir sınadığınızdan emin olun.

Hata ayıklama kullanarak Internet Information Server (4.0 ve üstü)

Sunucu bileşenleri ve Internet sunucu uzantısı dll dosyaları, IIS 4.0 veya sonraki bir sürümünü kullanırken hata ayıklama için bir ortam oluşturmak için çeşitli yolları vardır. Bir Windows NT işleme iliştirme yetenekli bir hata ayıklayıcı kullanıyorsanız, bileşen veya uzantı hata ayıklamak için bu işlevi kullanabilirsiniz. Visual c++ ile hata ayıklama, örneğin, aşağıdaki adımları uygulayın.:

  1. IISADMIN işlemi başlatın. Bu komut satırına net start IISADMINkomutu ile yapılabilir. IISADMIN başlayacak IIS Yönetici Hizmeti'ni başlatmak için Denetim Masası'ndaki Hizmetler iletişim kutusunu da kullanabilirsiniz.

  2. Visual c++ başlatın. Hata ayıklama başlatmak için Build menüsünden ve işleme iliştir ' i tıklatın.

  3. Sistem işlemi göster onay kutusunu seçin.

  4. Inetinfo işleminin listeden seçin ve Tamam ' ı tıklatın.

  5. W3svc hizmetini başlatın. Bu, net start w3svckomutunu komut satırından yapılabilir. World Wide Web Yayımlama hizmeti başlatmak için Denetim Masası'ndaki Hizmetler iletişim kutusunu da kullanabilirsiniz.

Bir Windows NT işleme kullanmakta olduğunuz hata ayıklayıcısı eklenemiyor, uygun bir hata ayıklama ortamı kurmak için aşağıdaki adımları uygulayın:

  1. Denetim Masası'ndaki Hizmetler iletişim kutusunu açın.

  2. IIS Admin hizmeti seçip Başlangıç düğmesini tıklatın.

  3. Hizmet masaüstü ile etkileşim izin ver onay kutusunu seçin ve Tamam ' ı tıklatın.

  4. IIS yönetim süreci altında çalışan tüm işlemler için örneğin World Wide Web Yayımlama hizmeti ve ftp Yayımlama hizmeti 2 ve 3 numaralı adımları yineleyin.

  5. HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/resim dosyası yürütme seçenekleri anahtarı Inetinfo.exe adlı bir alt anahtar eklemek için sicil dairesi yayıncı (Kral NAİBİ) kullanın.

  6. Bu yeni anahtarı aşağıdaki girişi ekleyin:

    Hata ayıklayıcı = lt; DebuggerExeName > DebuggerExeName hata ayıklayıcısının tam yolunu nerede kullanıyorsunuz.

World Wide Web Yayımlama hizmeti başlatıldığında, ayıklayıcınızı de piyasaya sunulacak. Şimdi senin Internet sunucu uzantısı dll uygun kesme noktaları ayarlayabilirsiniz.

Kadar bileşeni belleğe yüklenen bileşenin kaynak kodunu kesme noktası ayarlamak mümkün değildir. Bunu yapmak için Internet Explorer ve görünümü başlar.Nesneyi içeren asp sayfası. En kısa sürede Sayfa yüklendiğinde, sen-meli muktedir in your component kesme noktası ayarlamak. Sayfayı yeniden görüntülemek için Yenile ' yi tıklatın ve seçilen kırılma noktalarını tetiklemek. Varsa (örneğin, bileşenin başlangıç kodunda hata oluşursa), hatta bir kez bileşeni yüklenemiyor, hata ayıklama oturumu başlatmadan önce dll bileşenini yüklemeniz gerekir. (Bkz. Adım 11 aşağıda.)

Bazı durumlarda, yukarıda açıklanan iki yordamlardan birini kullanmak mümkün olmayabilir. Bu stratejilerden birini kullanmakta güçlük çekiyorsanız, önceki IIS sürümlerinde açıklanan üçüncü bir yaklaşım olduğunu. Windows NT güvenlik ayrıcalıkları kurulması hem de kayıt defterine değişiklikler yapmadan bu üçüncü bir yaklaşım gerektirir. Ayrıca, IIS bir hizmet olarak çalıştırmak için yeteneği devre dışı bırakır. Önceki iki stratejileri başarısız olursa, yalnızca bu yaklaşım kullanılmalıdır.

  1. Hizmet olarak oturum açma, işletim sisteminin bir parçası olarakve Güvenlik denetimleri üretme hakları yerel bilgisayarda Internet sunucu uzantısı dll ayıklarken kullanacağınız Windows NT hesabı eklemek Domains yönetim aracını (usrmgr) için Kullanıcı Yöneticisi'ni kullanın.

  2. Kimliğini IIS Admin hizmetinin hata ayıklama için kullanacağı kullanıcı hesabını değiştirmek için Dağıtılmış com Yapılandırma yardımcı programını (dcomcnfg) kullanın.

  3. Sicil dairesi yayıncı (Kral NAİBİ), LocalService anahtar hkey_classes_root/AppID IISADMIN ilgili tüm anahtarlarında kaldırmak için kullanın. Bu anahtar aşağıdaki alt anahtarında bulunabilir:

    {61738644-F196-11D0-9953-00C04FD919C1} / / IIS wamreg admin Servisi

    {9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / IIS Admin şifre uzantısı

    {A9E69610-B80D-11D0-B9B9-00A0C922E750} / / IISADMIN hizmeti

    AppID ek anahtarlardaki LocalService anahtar kelime bulunabilir.

  4. Tüm IISADMIN ilgili alt anahtarlar kayıt defteri CLSID düğümü altındaki LocalServer32 anahtarlarını ekleyin. Bu tüm alt anahtarlarını önceki adımda kaldırdığınız karşılık gelen alt anahtarlarını içerecektir. Kur varsayılan değer olan bu yeni anahtarlar için lt; yol > \inetinfo.exe -e w3svc. (<path> genelde "c:\winnt\system32\inetsrv" dir.)

  5. Microsoft Yönetim Konsolu veya Denetim Masası'ndaki Hizmetler iletişim kutusunda www ve ftp hizmetlerini durdurun.

  6. Visual C++'ı başlatıp Proje ayarları iletişim kutusunda hata ayıklama sekmesini seçin.

  7. Hata ayıklama oturumu çalıştırılabilir dosya alanı aşağıdaki yolu yazın:

    C:\WINNT\System32\Inetsrv\Inetinfo.exe

  8. Aşağıdaki Program bağımsız değişkenler alanına yazın:

    -e w3svc

  9. Proje ayarları iletişim kutusunda bağlantı sekmesini seçin.

  10. Internet sunucusu uzantısı çıktı dosya adı alanına hata ayıklama dll yolu ve adı girin.

  11. İsteğe bağlı olarak, bileşen dll uygulama başlatılmadan önce yüklenen Ek dll listesine ekleyin. Bu bileşeni başlatma kodu kesme noktası ayarlamak için izin verir.

  12. Hata ayıklama oturumu başlatmak için Git düğmesini tıklatın.

&Notnbsp;  Hata ayıklama oturumu tamamladıktan sonra adım 5'ten önceki ayarları geri yüklemek ve bir hizmet olarak çalışması için IIS izin vermek için 1 tersine çevirmeniz gerekir.

Teknik notlar numarasına göre |nbsp; Teknik notlar kategorisine göre

Index