ASP'den çağrıldığında COM nesneleri yazdırılamaz

Bu makale, ACTIVE Server Sayfalarından çağrıldığında COM nesnesinin yazıcıya çıkış göndermesi sorununu çözmenize yardımcı olur.

Orijinal ürün sürümü: Etkin Sunucu Sayfaları
Özgün KB numarası: 184291

Belirtiler

Bir yazıcıya çıkış gönderen bir COM nesnesi, Active Server Pages 'dan (ASP) çağrıldığında başarısız olur, ancak etkileşimli bir uygulamadan çağrıldığında düzgün çalışır. Bu COM nesnesi, Microsoft Office uygulaması gibi ticari bir ürün veya özel bir üçüncü taraf nesnesi olabilir. Sık karşılaşılan bir hata iletisi "ClassName hatası '800a01e2' Yazıcı hatasıdır."

Neden

Çoğu nesnenin yazdırmak için kullandığı standart API'ler, HKEY_CURRENT_USER'de bulunan kayıt defteri girişlerine bağlıdır. Bu kayıt defteri kovanı dinamiktir. İşlemin hangi kullanıcı bağlamı altında çalıştığına bağlı olarak, bu kovana farklı bilgiler yüklenir. ASP sayfaları, SYSTEM hesabı olarak çalışan IIS altında çalışır. ASP kodunuzda bir COM nesnesinin örneğini oluşturduğunuzda, varsayılan olarak bu nesne SYSTEM hesabı olarak da çalışır. Varsayılan olarak, SYSTEM hesabında kayıt defterinde ayarlanmış yazıcı yoktur.

Çözüm

Bu sorunu çözmek için SYSTEM hesabı için yazıcılar ayarlayabilirsiniz. SYSTEM hesabı için yazıcıları ayarlamak için aşağıdaki adımları uygulayın:

Uyarı

Bu yöntem, Kayıt Defteri Düzenleyici kullanarak kayıt defterini değiştirmenizi gerektirir. Kayıt Defteri Düzenleyici yanlış kullanılması, windows'un bunları düzeltmek için yeniden yüklenmesini gerektirebilecek ciddi, sistem genelinde sorunlara neden olabilir. Microsoft, Kayıt Defteri Düzenleyici kullanımından kaynaklanan sorunların çözülebileceğini garanti edemez. Bu aracı kendi riskinizle kullanın.

  1. Sunucuda oturum açtığınız kullanıcının istenen yazıcıların yüklü olduğundan emin olun.

  2. Kayıt Defteri Düzenleyici (Regedit.exe) başlatın.

  3. Aşağıdaki anahtarı seçin:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices

  4. Kayıt Defteri menüsünde Kayıt Defteri Dosyasını Dışarı Aktar'ı seçin.

  5. Dosya Adı metin kutusuna c:\Devices.reg yazın.

  6. Aşağıdaki anahtarı seçin:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts

  7. Kayıt Defteri menüsünde Kayıt Defteri Dosyasını Dışarı Aktar'ı seçin.

  8. Dosya Adı metin kutusuna c:\PrinterPorts.reg yazın.

  9. Aşağıdaki anahtarı seçin:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

  10. Kayıt Defteri menüsünde Kayıt Defteri Dosyasını Dışarı Aktar'ı seçin.

  11. Dosya Adı metin kutusuna c:\Windows.reg yazın.

  12. Başlangıç düğmesinden Çalıştır'ı seçin. Çalıştır iletişim kutusuna Not Defteri Devices.reg yazarak Not Defteri'nde Devices.reg açın.

  13. metni HKEY_CURRENT_USER ile HKEY_USERS\.DEFAULTdeğiştirin.

  14. Dosyayı kaydedin. Ardından Windows Gezgini'nde dosyaya çift tıklayarak kayıt defterine aktarın.

  15. PrinterPorts.reg ve Windows.reg için 13 ile 15 arasındaki adımları yineleyin.

Not

Bu adımlar yalnızca yerel yazıcılarda çalışır.

IIS'nin SYSTEM hesabını kullanarak ağ yazıcılarını listelemesini sağlamak için aşağıdaki adımları izleyin.

Not

İşlem Ağ Hizmeti hesabı altında çalışıyorsa, yeni oluşturulan kayıt defterine yönelik açık izinler gereklidir.

  1. Şu anda sunucuda istenen ağ yazıcılarının yüklü olduğu bir kullanıcı olarak oturum açtığınızdan emin olun.

  2. Kayıt Defteri Düzenleyicisi'ni başlatın.

  3. Aşağıdaki anahtarı seçin:

    HKEY_CURRENT_USER\Printers\Connections

  4. Kayıt Defteri menüsünde Kayıt Defteri Dosyasını Dışarı Aktar'ı seçin.

  5. Dosya Adı kutusuna c:\printconns.reg yazın.

  6. printconns.reg dosyasını Not Defteri'nde açmak için Başlat'ı seçin, Çalıştır'ı seçin, kutusuna Not Defteri printconns.reg yazın ve tamam'ı seçin.

  7. metnini metniyle HKEY_CURRENT_USERHKEY_USERS\.DEFAULTdeğiştirin.

  8. Dosyayı kaydedin.

  9. Dosyayı kayıt defterine aktarmak için Windows Gezgini'nde dosyaya çift tıklayın.

  10. Yazdırma Biriktiricisi hizmetini yeniden başlatın.