Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
IIS Express etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
IIS Express etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Eylül 2015 Pazartesi

zkemkeeper.dll ve Asp.Net uygulaması

Öncelikle biyometrik okuma cihazına bağlanmak için zkemkeeper.dll ve sdk'nın diğer dll dosyalarını registry'e kaydetmelisiniz. Bu aslında com bileşeni olarak sistemin erişebileceği bir id ile windows içinde kaydının oluşturulması demek oluyor. Bunu yapmak için zksoftware içinde gelen bat dosyasını çalıştırmanız yeterli.
copy .\sdk\*.dll %windir%\system32\
regsvr32 %windir%\system32\zkemkeeper.dll

Buna göre sdk içindeki tüm dll dosyalarını C:\Windows\system32 dizinine kopyalayıp zkemkeeper.dll dosyasını da registry'ye kaydetmiş oluyoruz. zkemkeper.dll için bir uygulama idsi oluşturdu {FE9D.....32C7} diye ve bunu da {00853....61F} ile çağırabilir bir DCOM objesi olarak sisteme kaydetti.

Normal olarak demo uygulamalarını bu kayıt işlemi yapılmadan önce çalıştırdığımda şu hatayı alıyordum: FAE has stopped working

DLL register edildikten sonra uygulama çalışıyor ve biyometrik cihazlara bağlantı sağlıyordu ama başka makinelerde aldığım bir sorunun ekran görüntüsünü şöyle alıyordum:

Bu hatayı elde etmek için program FAE hatası almasın diye dll register ettim ve uygulama açıldıktan sonra unregister ederek bağlanmayı deneyince ekrandaki Error mesajını aldım. Bu mesaj biyometrik cihazın çeşitli hata seviyelerinden(sanırım 6-7 tane var) biri. Maksadım bunu gördüğünüzde neden olduğunu bir nebze anlamanızı sağlamak.

Şimdi "happy path"(mutluluğa giden keçi yoluna bakalım :) )
Dll kaydedildi ve demo uygulamasıyla cihaza bağlanalım:

ASP.NET uygulamamda ise şu hataları alıyordum:
  1. Class not registered diyerek CZKEMClass'tan bir nesne yaratmama müsade etmiyordu
  2. Başka bir makinede ise nesne yaratıyor ama aktif cihazlara peş peşe bağlantı sağla dediğimde sorun çıkartmazken, pasif bir cihaza bağlan dediğimde bir sonraki aktif cihaza bağlantı sağlamayı denemeden cihaza ulaşılamadı diyordu

1. Madde için aldığım sorunu göstereyim:
Retrieving the COM class factory for component with CLSID {00853A19-BD51-419B-9269-2DABE57EB61F} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

2. Madde için ekran görüntüsünü yaratamıyorum ama ikisinin çözümünü nerede bulduğumun ekranını paylaşayım:
IIS Express'in 64 bit versiyonunu çalışmaya zorlayınca dll'lerin register edildiği versiyona erişmesini sağlamış oldum. Çünkü zkemkeeper.dll'i kaydetmek istediğinizde 32/64 bit seçeneklerinden eğer 64 bitlik sistem üstünde koşuyorsanız 32 liğini yükleyemiyorsunuz(klasör adı "Communication Protocol SDK(32Bit Ver6.2.4.1)" olanı yükleyemiyorsunuz çünkü içeriğindeki zkemkeeper.dll 32 uyumlu değil).
Ancak Communication Protocol SDK(64Bit Ver6.2.4.1) klasöründeki zkemkeeper.dll dosyasını sisteme kaydedebiliyorsunuz. Bu durumda ASP.NET uygulamanızın IIS Express versiyonununda 64 bit olması için zorlamanız gerekiyor.

Ve tekrar çalıştırdığımda uygulamamı: