Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 37223|Yanıt: 1

[Kaynak] sınav kağıdı oluşturmak için aspose.words

[Bağlantıyı kopyala]
Yayınlandı 8.04.2016 16:44:24 | | |

Yakın zamanda çevrimiçi bir kağıt gruplama projesi yaptım. Ana işlevler kelime tipi, önizleme ve sınav kağıtları oluşturma işlemlerini içerir. Başlangıçta kelime işlemleri söz konusu olduğunda, akla gelen bir şey Word'ü çalıştırmak için Office COM bileşenidir. Tüm sistem için kodu yazmak yaklaşık iki hafta sürdü. Sonra defalarca test yapmaya başladım, yerel olarak kendimi iyi hissettim, kelime testi kağıdını sorunsuz bir şekilde oluşturabildim ve performans iyiydi. Bu yüzden sunucuya sunmak için sabırsızlanıyordum.

İlki, COM fabrikasında CLSID {000209FF-0000-0000-C000-000000046} olan bir bileşenin aşağıdaki hata nedeniyle arızalanmasıdır: 8000401a Sistem, yapılandırma kimliği yanlış olduğu için sunucu sürecini başlatamaz. Lütfen kullanıcı adı ve şifreyi kontrol edin. (HRESULT'dan istisna:0x8000401A).

Öncelikle, tüm bu sorunlar izinlerden kaynaklanıyor ve çözüm sadece izinleri yapılandırmak. Sadece Excel ve Word için değil, tüm Office ürünleri için de faydalı.

Konuya gelmek için önce çalıştırma sırasında dcomcnfg girin, component service manager->component service->my computer->DCOM-> ilgili Microsoft excel uygulaması/Microsoft word 97-2003 belgesini bulun ve önyükleme iznini etkinleştirmek için özniteliğe sağ tıklayın, bu da OK'ye yeterli olur. -------- sorun yok, bu sorun çözüldü.



İkinci durum "Performans sorunu"ndan bahsedelim: Çünkü sistemimiz web sitemizin bir sonraki alt sistemi. Yani belirli bir kullanıcı tabanı var. Sistem, yayınlanır açılmaz çok sayıda kullanıcı tarafından erişildi. Başlangıçta, günde dört ya da beş yüz makale gruplanıyordu ve yavaş yavaş makale hacmi giderek büyüdü, bu da sistemdeki sorunların başlangıcıydı. Birincisi, süreçte birçok winWord.exe sürecin olmasıdır. Bitemez. Sistem kodu Bırak sürecini içerse ve kaynakları geri dönüştürse de, sorun asla çözülmez. Çok sayıda winword.exe işlemin sonucu olarak, sunucu yavaşlar. Bu bileşen için özellikle bellek yoğun olmalıdır.

Sorunu çözmenin bir yolu yok. Son rogue, çalışmayan winword sürecini öldüren bir zamanlama servisi yazmaktı. Bu semptomları tedavi eder ama temel nedeni değil. 、



Burada şunu söylemek istiyorum ki, Microsoft Office, esas olarak sıradan kullanıcılar için geliştirilmiş, zengin kullanıcı arayüzü (kullanıcı arayüzü) öğeleri olan bir masaüstü ofis uygulama yazılımıdır ve tamamen yerel çalışan yazılım veya istemci yazılımlarından oluşan bir settir. Word otomasyon arayüzü, öncelikle pencere uygulama çağrılarını kolaylaştırmak için tasarlanmıştır. Örneğin, Delphi, VB, C# Winform vb. tarafından geliştirilen yerel uygulamalar. Visible'ı yanlış olarak zorlamak ve Word sunucu tarafı kodla çalışabilse de, bu yine de birçok karmaşık sorun getiriyor.

1. ASP.NET, B/S mimarisine dayanmaktadır. B/S mimarisinde, kullanıcı erişimi eş zamanlı olur, bu da N kullanıcının genellikle aynı anda bir sunucu sayfasına talep yapması anlamına gelir. Bu durumda, Word otomasyon çağrısı zaman zaman genellikle kesilir.

2. Gizli arayüz işlemi nedeniyle, pencere programında başarılı şekilde çağrılabilen bazı arayüzler sunucu tarafında çağrı yapmaz veya hatta çöker, bu da genellikle işlemlerin ölü olmasına yol açar.

3. Word, karmaşık bir masaüstü programı olduğu ve genel Web servis programlarının basitlik ve verimlilik standartlarını karşılamadığı için, sunucu tarafında çalışması yavaştır ve çok fazla kaynak (CPU, bellek) tüketir, özellikle aynı anda çok sayıda kullanıcının erişmesini destekleyemez ve kaynaklar hızla tükenir.

4. Çoğu geliştirici COM teknolojisine nispeten aşina değildir ve Word arayüzü programlanırken ve çağrılırken genellikle bazı kod hataları olur; sorunu kontrol etmek zordur; bu da sık sık süreçlerin durmasına neden olan bir faktördür. Word ölü süreçleri sadece sunucu kaynaklarını tüketmekle kalmaz, aynı zamanda sunucu sayfalarının yeni Word otomasyon nesneleri oluşturabilmemesine ve çalışmaya devam etmesine neden olur. Bazı internet kullanıcıları ölü bir süreç çözümü önerdi: Word'ün ölü sürecini öldürme programı; bu, semptomları tedavi eden ama kök nedeni değil, Word'ün ölü süreci yok oldu, ancak Word'ün anormal şekilde kapanması birçok kaynağın zamanında serbest bırakılamamasına neden olur. Böyle bir web sunucusunun ne kadar dayanacağı belli olmak zor.



Bu sorunları çözmek için, kapsamlı araştırma ve karşılaştırmadan sonra, yazar internette yukarıdaki sorunları tamamen ortadan kaldıran ve sizinle paylaşmanız önerilen bir bileşen bileşeni olduğunu buldu.



Aşağıda, aspose.words bileşeninin bazı işletim kodlarını sizinle paylaşacağım, umarım ihtiyacı olanlara faydalı olur





Orijinal bağlantı: http://blog.csdn.net/fraing/article/details/8989736




Önceki:[Yardım] Bir web sitesi oluşturmak istiyorsanız, bir sonraki sayfanın kaynak kodunu değiştirmeme yardımcı olmak için html yazabilirsiniz. Yardım iste
Önümüzdeki:PDF belgeleri oluşturmak için Aspose.Words
Yayınlandı 3.05.2020 09:07:08 |
İyi bir gönderi, faydalı
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com