Bir COM + bileşeni IDE Visual Basic içindeki bir ASP istemcisi ile hata ayıklama hatası oluşuyor

Makale çevirileri Makale çevirileri
Makale numarası: 259725 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft hata istemci bir Active Server Pages (ASP) sayfası parçasıyken, COM + 1.0 sürümü bileşen Visual Basic 6. 0'da bir Microsoft Windows 2000 tabanlı bir bilgisayarda, aşağıdaki hata iletisini tarayıcıda görünebilir:
Sunucu nesnesi, ASP 0178 (0x800A0005) Server.CreateObject çağrısı, izinler denetlenirken başarısız oldu. Bu nesne için erişim engellendi.
Microsoft hata istemci, bir Active Server Pages (ASP) sayfasında, COM + 1.5 sürümü Visual Basic 6. 0'da bir Microsoft Windows XP tabanlı bir bilgisayarda, aşağıdaki hata iletisini bileşen tarayıcıda görüntülenebilir:
Sunucu nesnesi, ASP 0178 (0x800A0005), izinler denetlenirken Server.CreateObject çağrısı başarısız oldu. Bu nesne için erişim engellendi.
Bu davranış, yalnızca COM + bileşeninden Visual Basic tümleşik geliştirme ortamı (IDE) çalıştırdığınızda oluşur. Bir COM + uygulamasında derlenmiş durumda COM + bileşeninin çalıştırdığınızda hata oluşmaz.

Neden

Anonim erişim, kullanıyorsanız, ıusr_ <machinename>hesap kimlik doğrulaması yapan kullanıcı, genellikle (Bu durumda VB6.exe) <a0>DCOM sunucusuna erişmek için uygun izinlere sahip değil. COM + bileşenleri Visual Basic IDE ayıklarken başlatan kullanıcı etkileşimli kullanıcı, DCOM sunucusunun erişim kimlik doğrulaması yapan kullanıcı kullanıcıdır.

VB6.exe DCOM girdisi yok olduğundan, DCOM varsayılan izinleri kullanır. Windows 2000 ve Windows XP'de, DCOM varsayılan erişim izinlerini yalnızca başlatan kullanıcı ve sistem hesabının varsayılan olarak verilir. Başlatan kullanıcı ve DCOM sunucusunun erişen kullanıcı aynı gösterilen hata iletisi olmadığından "Belirtiler" bölümünde oluşur.

Çözüm

Önerilen iki geçici çözüm vardır:

Geçici Çözüm 1

Bir DCOM girdisi VB6.exe için kayıt defterine ekleyin. Bu, Visual Basic'te, hata ayıklama COM + bileşeni için belirli bir DCOM izinleri ayarlamanızı sağlar.
  1. VB, ASP hata ayıklama DCOM, girdiyi oluşturun:
    1. Microsoft Not Defteri'ni veya başka bir metin düzenleyicisini başlatın ve büyük/küçük harf duyarlı aşağıdaki sözdizimini yazın:
      REGEDIT4
      [HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}]
      @="VB ASP Debugging"
      [HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}\LocalServer32]
      @="vb6.exe"
      [HKEY_CLASSES_ROOT\AppID\vb6.exe]
      "AppId"="{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}"
    2. Dosyayı Vbaspdbg.reg kaydedin.
    3. Vbaspdbg.reg dosyayı kaydettiğiniz klasörü bulun ve dosyayı çift tıklatın (otomatik olarak kendisini pencerelerinde kaydeder kayıt defteri).
  2. Visual Basic ASP hata ayıklama için DCOM izinlerini Everyone hesabını ekleyin.

    Windows 2000
    1. DCOMCNFG başlatın. Başlat menüsünde Çalıştır ' ı tıklatın ve sonra dcomcnfg, iletişim kutusuna yazın.
    2. Dağıtılmış COM Yapılandırması Özellikleri sayfasında, uygulamalar sekmesini tıklatın, VB, ASP hata ayıklama için listeden seçin ve sonra da Properties ' i tıklatın.
    3. VB ASP hata ayıklama özellikleri özellik sayfasında, menkul kıymetler sekmesini tıklatın ve ardından <a0>özel erişim izinlerini kullan</a0> onay kutusunu seçin. Düzenle ' yi tıklatın.
    4. Kayıt defteri değeri izinleri penceresinde, Ekle ' yi tıklatın ve sonra da Erişim izniEveryone hesabını ekleyin.
    5. Tamam ' ı tıklatın ve değişiklikleri uygulamak ve Dağıtılmış COM Yapılandırması Özellikleri sayfası'ndan çıkmak için Uygula ' yı tıklatın.
    6. Böylece, değişikliklerin etkili olması için bilgisayarı yeniden başlatın.
    Windows XP

    1. COM + Gezgini'ni başlatın. Başlat menüsünde Yönetimsel Araçlar ' ı tıklatın ve sonra Bileşen Hizmetleri ' ni tıklatın.
    2. Component Services ' ı genişletin, bilgisayarları ' nı genişletmek için tıklatın, Bilgisayarım ' ı genişletmek için tıklatın ve DCOM Yapılandırması ' nı genişletmek için tıklatın, bu seçeneği tıklatın.
    3. VB, ASP hata ayıklama sağ tıklatın ve Özellikler ' ı tıklatın.
    4. Menkul kıymetler sekmesinde, Erişim izinleri, Özelleştir ' i seçin ve sonra da <a2>Düzenle</a2>'yi tıklatın.
    5. Erişim izni penceresinde, Ekle ' yi tıklatın ve sonra da hesabı için erişim izni Everyone seçeneğini ekleyin.
    6. Tamam ' ı tıklatın, sonra Uygula ' yı tıklatın ve değişiklikleri uygulamak ve DCOM Yapılandırma Özellikleri Sayfası'ndan çıkmak için Tamam ' ı tıklatın.
    7. Böylece, değişikliklerin etkili olması için bilgisayarı yeniden başlatın.

Geçici çözüm 2

  1. Hata ayıklama amacıyla, uygulama koruması, sanal ASP sayfasının bulunduğu dizinin yapılandırma "Yüksek (yalıtılmış)." Bu Web sitesinin diğer etkilemeden değiştirilecek güvenlik sağlayan kendi işlemini çalıştırmak için ASP sayfası zorlar.
    1. Internet Services Manager'ı başlatın.
    2. ASP sayfasının bulunduğu sanal dizini sağ tıklatın ve sonra da Özellikler ' i tıklatın.
    3. Sanal dizin</a0> sekmesini tıklatın ve sonra da <a1>Yüksek</a1> (yal?t?lm??)Uygulama koruması</a1> a?a?? aç?lan listesinden seçin.
    4. Uygula ' yı tıklatın.
  2. Bu sanal dizin için anonim erişim devre dışı bırakmak ve Tümleşik Windows kimlik doğrulaması veya Temel kimlik doğrulaması için seçili olduğundan emin olun:
    1. Sanal dizin için Özellikler iletişim kutusunda, Dizin Güvenliği sekmesini tıklatın.
    2. Anonim erişim ve doğrulama denetimi için Düzenle ' yi tıklatın.
    3. Anonim erişim</a0> onay kutusunun temizlendiğinden emin olun.
    4. Tümleşik Windows kimlik doğrulaması veya Temel kimlik doğrulaması ' nı tıklatın.
  3. Tümleşik Windows kimlik doğrulaması kullanılıyorsa, istemci tarayıcısına, Visual Basic IDE hata ayıklama oturumu olarak aynı kullanıcı hesabının altında ASP sayfasına erişmek için çalıştırın. Temel kimlik doğrulaması kullanılıyorsa, aynı Visual Basic IDE hata ayıklama oturumu, altında çalıştığı kullanıcı hesabının kullanıcı adını ve parolayı girin.

    Not Ikinci geçici çözümü, "Varsayılan erişim izinleri" COM değil değiştirilmiş olduğunu varsayar. Sonra hiçbir zaman "Varsayılan erişim izinleri" değiştirildi, COM, System hesabı ve sunucu kimlik izin veren bir erişim denetim listesi (ACL) oluşturur. Bu senaryoda, sunucu kimliğini, Visual Basic IDE hata ayıklama oturumu çalıştıran oturum açmış kullanıcıdır. Daha sonra ikinci geçici Visual Basic IDE oturum hata ayıklama kullanıcı hesabının çalıştığını gerektirir "Varsayılan erişim izinleri" DCOM değiştirildi, "Varsayılan erişim izinleri için" altında eklenmesi. DCOMCNFG kullanarak bu yapılabilir. Ek bilgi için bkz: "COM güvenliği" "Daha fazla bilgi" bölümünde bağlantı.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Bu davranış, Microsoft Windows NT 4.0 ve IIS 4. 0'de oluşmaz. Windows NT 4.0 tabanlı bir bilgisayarda ASP 0178 hata ile ilgili ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
198432SORUN: Sunucu nesne hatası 'ASP 0178' başlatmasını COM nesnesi
COM güvenliği hakkında ek bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms686599.aspx

Özellikler

Makale numarası: 259725 - Last Review: 8 Aralık 2004 Çarşamba - Gözden geçirme: 4.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Active Server Pages 4.0, Ne zaman ne ile kullanilir:
    • the operating system: Microsoft Windows 2000
    • Microsoft Windows XP Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbbug kbcomplus kbdebug kbprb kbvbp600 KB259725 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:259725

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com