IronOCR ile Yerel Makinede Azure Fonksiyonlarını Hata Ayıklama
Azure'u yerel olarak çalıştırırken karşılaşılan sorunlar
Bu sorunla karşılaşıldığında görülen yaygın istisnalar şunlardır:
IronOcr için Tesseract dağıtılırken hata 'libtesseract-5' bulunamadi 'libtesseract-5' bulunamıyor
- Tesseract-5 bulunamadı
- \bin\runtimes\win-x64\native\IronOcr.Native.deployment.json konumunda dağıtım yapılandırma dosyası bulunurken hata oluştu
- IronOcr: 'EnglishBest' için gerekli olan .traineddata dosyası eksik ve bu dosya şu konumda bulunmalıdır:
Azure Fonksiyonlarını Yerel Olarak Çalıştırırken Bağımlılık Sorunu
Azure'u yerel olarak çalıştırırken, Azurite (VS2022) veya Azure Depolama Emulatorü (VS2019) kullanarak, dağıtım için kullanılan ek bir bin dizini oluşturulur. Yalnızca DLL dosyaları bu dizine kopyalanır, bu nedenle ek dosyalar gerektiren yazılım çalışmaz ve yukarıdaki istisna ile karşılaşabilir.
Bu sorunu, çalıştırma dizinini Depolama Emulatorü tarafından kullanılan ayrı bin dizinine kopyalayarak çözebilirsiniz. Bunu yerel olarak çalışırken (yeni derleme/inşa işlemi bin dizinini orijinal durumuna döndüreceğinden) bir son-bina olayı olarak yapmanızı öneriyoruz (aşağıdaki talimatlara bakınız). Bunu bulut ortamına dağıttığınızda bu sorunla karşılaşmazsınız.
- Sorun: Yerel olarak bir Azure Fonksiyonu projesi çalıştırıldığında, işlevi çalıştırmak için bir bin klasörü oluşturarak ancak gerekli tüm dosyaları bu klasöre kopyalamaz. Ancak, gerekli tüm dosyaları söz konusu bin klasörüne kopyalamaz.
- Örnek: C:\code\azure-functions-test dizininde ve C:\code\azure-functions-test\bin\Debug\netcoreapp3.1 olarak bir proje oluşturur.
- Çözüm: C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes dizinini kopyalayın, böylece C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin içinde de var olur.
- Varolan dosyaları değiştirmek isteseniz de üzerine yazın.

Yapı Sonrası Olay Adımları
Azure Functions projesine sağ tıklayın, Özellikler'i seçin.
- Etkinlikler bölümüne doğru aşağı kaydırın.
-
Gerekli tüm dosyaları doğru dizine kopyalayacak bir Derleme sonrası olay komutu girin:
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DXCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DSHELL- Açıklama:
XCOPYdosyaları ve dizin ağaçlarını kopyalamak için kullanılır.$(TargetDir)runtimesçalışma dosyalarının başlangıçta derlendiği kaynak dizindir.$(TargetDir)bin\runtimesuygulama yerel olarak çalıştığında çalışma dosyaları için hedef dizindir.
- Seçenekler:
/Sboş olanlar hariç dizinleri ve alt dizinleri kopyalar./Eboş olanlar dahil tüm alt dizinleri kopyalar./Ymevcut dosyaların üzerine yazma onayını bastırır./Ieğer hedef yoksa ve birden fazla dosya kopyalanıyorsa, hedefin bir dizin olması gerektiğini varsayar./Rsalt okunur dosyaların üzerine yazar./Dhedefte olmayan veya daha yeni olan dosyaları kopyalar.
- Açıklama:


