Makale numarası: 257757 - Bu makalenin geçerli olduğu ürünleri görün.
Geliştiriciler Microsoft Office Otomasyonu'nu kullanarak, Office ürününde yerleşik olarak bulunan beceri ve özelliklerden yararlanan özel çözümler geliştirebilir. Bir istemci sisteminde bu şekilde program aracılığıyla geliştirme göreli olarak kolay olmakla birlikte, Otomasyon işlemi Active Server Pages (ASP), DCOM veya bir NT Service gibi sunucu tarafı kodundan gerçekleştirilecekse oluşabilecek birkaç zorluk bulunmaktadır.
Bu makalede, geliştiricilerin karşılaşabilecekleri zorluklar açıklanmakta, performansı artırabilecek Otomasyon alternatifleri sunulmakta ve sunucu tarafında Otomasyon kaçınılmazsa Office'i yapılandırma yöntemleri önerilmektedir. Ancak geliştiriciler, aşağıda sunulan önerilerin bilgilendirme amaçlı olduğunu anlamalıdır. Microsoft, sunucu tarafında Office Otomasyonu'nu önermez ve desteklemez.
Not Bu bağlamda, "sunucu tarafı" terimi Microsoft Windows NT veya Microsoft Windows 2000 iş istasyonunda çalıştırılan kod için de geçerlidir; ancak kullanıcının oturum açtığı etkileşimli istasyondan başka bir Windows iş istasyonundan çalıştırılmalıdır. Örneğin, Görev Yöneticisi tarafından SYSTEM hesabı altından başlatılan kod, aynı ortamda "sunucu tarafı" ASP veya DCOM kodu olarak çalışır ve bu nedenle de çok sayıda aynı sorun yaşanır. Windows iş istasyonları ve COM hakkında daha fazla bilgi için, "Daha Fazla Bilgi" ve "Başvurular" bölümlerine bakın.
Microsoft Office'in tüm güncel sürümleri, bir istemci iş istasyonunda son kullanıcı ürünleri olarak tasarlanmış, sınanmış ve yapılandırılmıştır. Etkileşimli bir masaüstü ve kullanıcı profili kullanılacağı varsayılır ve katılımsız olarak tasarlanmış sunucu tarafı bileşenlerinin gereksinimlerini karşılayacak yeniden kullanılabilirlik veya güvenlik düzeyi sağlanmaz.
Microsoft, katılımsız ve etkileşimli olmayan istemci uygulamalarından veya bileşenlerinden (ASP, DCOM ve NT Services dahil) Microsoft Office uygulamalarının Otomasyonunu önermez ve desteklemez, çünkü Office bu ortamda çalıştırıldığında kararsız davranışlar gösterebilir ve/veya kilitlenebilir.
Sunucu tarafı bağlamında çalışan bir çözüm geliştiriyorsanız, katılımsız yürütme için güvenli hale getirilmiş bileşenler kullanmaya veya en azından kodun bir parçasının istemci tarafında çalıştırılmasına olanak veren alternatifler bulmaya çalışmalısınız. Sunucu tarafı çözümünden bir Office uygulaması kullanmayı seçerseniz, başarıyla çalışabilmesi için gereken birçok beceriye sahip olmadığını görecek ve çözümünüzün genel kararlılığını riske atmış olacaksınız.
Sunucu tarafında Office Otomasyonu kullanma ile ilgili sorunlarOffice'i bir sunucu tarafı çözümünde kullanmaya çalışan geliştiriciler, çalışma ortamı nedeniyle Office'in beklenenden farklı davranacağı beş ana hususta bilgi sahibi olmalıdır. Kodunuzun başarıyla çalıştırılabilmesi için bu hususlara dikkat edilmesi ve etkilerinin mümkün olduğunca azaltılması gerekir. Uygulamanızı geliştirirken bu noktalara dikkat edin, çünkü tümüne yönelik tek bir çözüm bulunmamaktadır ve farklı tasarımlarda öğelerin önceliklerinin farklı belirlenmesi gerekir.
Bu önemli sorunların yanı sıra, birçok müşteri sunucu tarafında otomasyonu denediklerinde varsayılan Office yüklemelerinde hiçbir değişiklik yapmadan aşağıdaki genel hatalardan biri alabilmektedir:
Sunucu tarafında çalıştırırken Otomasyon alternatiflerini kullanmaMicrosoft, geliştiricilerin sunucu tarafı çözümler geliştirmeleri gerekiyorsa Office Otomasyonu alternatifleri bulmalarını önerir. Office tasarımındaki kısıtlamalar nedeniyle, Office yapılandırmasındaki değişiklikler tüm sorunları gidermek için yeterli değildir. Microsoft, Office'in sunucu tarafında yüklü olmasını gerektirmeyen ve çoğu genel görevi Otomasyon ile karşılaştırıldığında daha verimli ve daha hızlı gerçekleştirebilen birkaç alternatif önerir. Office'i projenizde bir sunucu tarafı bileşen olarak kullanmadan önce alternatifleri göz önüne alın.
Çoğu sunucu tarafında Otomasyon görevinde belge oluşturma işlemi gerçekleştirilir. Office 2000 ve sonraki sürümleri HTML'yi bir özgün belge biçimi olarak desteklediği için, çoğu belge gerektiğinde Genişletilebilir İşaretleme Dili (XML) kullanılarak oluşturulabilir ve bir Çok Amaçlı Internet Posta Uzantıları (MIME) türü kullanılarak bir istemciye akışı sağlanarak metin Office'te görüntülenebilir. Belge gerektiğinde sunucuda yalnızca ASP kullanılarak düzenlenebilir, kaydedilebilir ve hatta sunucuya döndürülebilir. Office'in önceki sürümlerinde, diğer kolay yönetilebilen metin biçimleri (RTF gibi) kullanılarak aynı etki oluşturulabilir.
Bazı özgün ikili dosya biçimleri, Office Web Components (OWC) veya ActiveX Data Objects (ADO) kullanılarak çok daha hızlı ve ölçeklenebilir şekilde düzenlenebilir. Belge özellikleri Otomasyon olmadan görüntülenebilir veya değiştirilebilir; dosya yönetimi ve sürüm oluşturma işlemleri ise FrontPage Server Extensions (FPSE) ya da Dağıtılmış Yazma ve Sürüm Oluşturma (DAV) kullanılarak gerçekleştirilebilir. Otomasyon gerekli olduğunda, birçok görevin yükü istemciye yönlendirilerek sistemin daha kararlı ve ölçeklenebilir olması sağlanabilir; çünkü bu durumda, her kullanıcı görevi kendi ayarlarıyla kendi bağlamında çalıştıracaktır.
Bu konulardan herhangi biri ve nasıl uygulanacaklarının gösterildiği örnekler hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın: (Aşağıdaki liste, bir kısmı veya tamamı İngilizce olan içeriğe işaret eden bağlantılar içerebilir.)
270906
(http://support.microsoft.com/kb/270906/ )Microsoft Word'e akış sağlanacak bir Zengin Metin Biçimi (RTF) belgesi oluşturmak için nasıl ASP kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
198703
(http://support.microsoft.com/kb/198703/ )Excel bir istemci tarafı VBScript'ten nasıl otomatikleştirilir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
199841
(http://support.microsoft.com/kb/199841/ )ASP sonuçları Excel kullanılarak IE'de MIME türleriyle nasıl görüntülenir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
224351
(http://support.microsoft.com/kb/224351/ )Visual Basic .NET 2003 ve Visual Basic .NET 2002'de Dsofile.dll dosyası Office belge özelliklerini Office olmadan düzenlemenize izin veriyor (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
244049
(http://support.microsoft.com/kb/244049/ )Sunucu tarafında grafik kullanarak grafikleri dinamik olarak oluşturma (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
258187
(http://support.microsoft.com/kb/258187/ )OWebComp.exe dosyası Office 2000 Web Components için komut dosyası örnekleri içeriyor (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
260239
(http://support.microsoft.com/kb/260239/ )Active Server Pages sayfasıyla bir Excel dosyası oluşturulurken hücre verileri nasıl biçimlendirilir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
278973
(http://support.microsoft.com/kb/278973/ )ExcelADO, Excel çalışma kitaplarındaki verileri okumak ve yazmak için ADO'nun nasıl kullanılacağını gösterir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
286023
(http://support.microsoft.com/kb/286023/ )Internet Explorer'dan Word otomasyonu için bir VB ActiveX bileşeni nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
288130
(http://support.microsoft.com/kb/288130/ )İstemci tarafında görüntüleme için XML biçiminde elektronik tablo oluşturulurken ASP nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
317316İşletmenizde ikili Office dosyalarının sunucu tarafında oluşturulması gerekiyorsa, üçüncü taraf satıcıların sunduğu bileşenler size yardımcı olabilir. Aşağıda, bu tür hizmetler sağlayan bazı tanınmış satıcılar listelenmektedir. Bu liste bilgilendirme amacıyla sağlanmıştır. Liste özel değildir. İşinize yarayabilecek benzer hizmetler sunan başka satıcılar da olabilir. İşletmenizin gereksinimlerini en iyi karşılayan tüm olası üçüncü taraf çözümleri araştırmalısınız. Aşağıdaki satıcılar günümüzde özgün Office dosya biçimlerinin program aracılığıyla oluşturulmasına ve düzenlenmesine izin veren bazı çözümler sunmaktadır. Üçüncü taraf satıcılar hakkında daha fazla bilgi için, aşağıdaki Web sitelerini ziyaret edin:
(http://support.microsoft.com/kb/317316/ )Sunucu tarafında kullanıldığında Office Web Components'ın kısıtlamaları (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
Aia Software B.V.
http://www.aia-itp.comPolar
(http://www.aia-itp.com)
http://www.polarsoftware.comSoftArtisans
(http://www.polarsoftware.com)
http://www.softartisans.comSyncFusion
(http://www.softartisans.com)
http://www.syncfusion.comKeylogix
(http://www.syncfusion.com)
http://www.activedocs.comNot Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
(http://www.activedocs.com)
Office'i sunucu tarafında çalışacak biçimde yapılandırmaBaşka bir çözüm kullanılamıyorsa ve sunucu tarafında Office Otomasyonu'nu kullanmaya karar verirseniz, çözümünüzün bu ortamda başarıyla çalışabilmesi için yukarıda listelenen hususların çoğunu göz önüne almalısınız. Sorunların büyük bölümü yapılandırma ile ilgili olduğu için, sunucu tarafında Office Otomasyonu'nun tüm sistemler için her durumda çalışmasını sağlayacak bir dizi adım sunulması mümkün değildir. Bazı yapılandırma ayarları diğer seçeneklerle çakışabilir ve her yaklaşımın faydaları olduğu gibi kısıtlamaları da vardır. Çalışma ortamınıza en uygun çözümü bulmak için farklı çözümler denemeniz gerekebilir.
Sunucu tarafı kodundan Office Otomasyonu için, genelde aşağıdaki görevleri gerçekleştirmeniz gerekir:
Bu nedenle, yapılacak ilk adım, sunucu tarafı tasarımınızda Office Otomasyonu kullanımını kısıtlamak ve işlemi gerektiğinde yeniden başlatılabilen, kritik olmayan bir bilgisayarla yalıtmaktır. Çağrıyı yapan bağlamı da yalıtarak, çağrıyı yapan istemci askıda kalırsa sistem hizmetlerinin genel performansını etkilememesini sağlayın. Örneğin, bir sistem iş parçacığı kullanarak doğrudan IIS içinden otomasyon sağlamayın; bunun yerine, kodu kendi iş parçacığında çalışacak biçimde yalıtarak, başarısız olursa genel IIS işlevselliğini azaltmamasını sağlayın. Ayrıca, tasarımınızın güvenlik ve kimlik doğrulaması işlemlerini nasıl zorlayacağını da göz önüne alın. Office sunucu tarafı güvenliğini zorlamadığı için, kodunuz, yalnızca ASP sayfaları ve komut dosyaları gibi "güvenilen" kod modüllerinin Office Otomasyonu uygulama örneği oluşturabilmesini ve yöntemlerini çağırabilmesini, tüm belgelerin Office tarafından açılmadan önce güvenli olduklarının doğrulanmasını sağlaması gerekir. Office uygulamaları bir sunucuda her zaman Yüksek güvenlik ayarlarıyla çalışmalıdır. Tasarımınız güvenliği zorlamıyorsa, sunucunuzu riske sokmuş olursunuz!
Tasarım belirlendikten sonra, kodunuzu sorunların engellenmesini sağlayacak ve oluşabilecek hataları işleyecek biçimde geliştirmelisiniz. Kodunuzun isteğe bağlı parametre değerlerini geçirdiğinden emin olun, çünkü eksik veya çakışan değerler bazı durumlarda Office'in kullanıcıdan daha fazla bilgi istemesine neden olabilir. Hata koşullarının normal bir şekilde işlenmesi için tüm işlevlerde hata yakalama kullanın ve özel bir ayar ile (kayıt defterinde veya INI dosyasında) açıp kapatılabilen günlük kodu kullanarak bu hataları günlüğe kaydedin. Office'ten bağımsız olarak bir hata iletişim kutusunun görüntülenmesine neden olan bir eylem gerçekleştirirseniz (örneğin, yazıcıda kağıt kalmazsa, yazdırma işlemi yazıcı sürücüsünün bir iletişim kutusu görüntülemesine neden olabilir), ilerleme durumunu izlemek üzere bir zaman aşımı iş parçacığı veya ikinci bir iş parçacığı kullanarak olası kilitlenmeleri işlemeye hazır olun. Daha fazla bilgi için, aşağıdaki Microsoft Bilgi Bankası makalesine bakın:
259971Sorunları izlemek ve programınızda hata ayıklamak için günlük kodunuzu kullanın. Özel bir nesne havuzu kullanırsanız, tüm istemcileri etkileyen kullanım ve günlük sorunlarını izlemek için performans ve ölçeklenebilirlik sınamaları ekleyebilirsiniz. Merkezi bir denetleyici de Office'in hatalı örneklerini sonlandırmanıza ve gerektiğinde genel kararlılığı artırmak üzere bunları yeniden oluşturmanıza olanak tanır.
(http://support.microsoft.com/kb/259971/ )Office uygulaması tarafından görüntülenen bir iletişim kutusu Visual Basic ile yoksayma (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
Program dağıtılmaya hazır olduktan sonra, Office'in sunucuda uygun bir kullanıcı bağlamında çalışmak üzere uygun şekilde yapılandırıldığından emin olun. Office bir kullanıcı profili gerektirir ve başarıyla otomatikleştirilmesi için bir kullanıcı profiliyle yüklenmesini sağlamalısınız. Sunucu tarafı ortamında çalışırken bunu üç şekilde yapabilirsiniz:
288366İkinci seçenek, belirli bir kullanıcı atar ama etkileşime izin vermez. Office, görünür olmayan bir masaüstündeki yeni bir Windows iş istasyonunda atanmış kullanıcı olarak başlatılır. Bu seçenek, COM/DCOM tarafından varsayılan olarak yapılmadığı için User kayıt defteri kovanının yüklenmesini sağlayan ek yapılandırma gerektirebilir. Bu ayar sistem geneline uygulanacağı için başka programlarla çakışabilir. Office'i bu şekilde yapılandırma hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'nda yer alan aşağıdaki makaleye bakın:
(http://support.microsoft.com/kb/288366/ )Office uygulamaları etkileşimli kullanıcı hesabı altında çalışacak biçimde nasıl yapılandırılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
288367Üçüncü seçenek, belirli bir Web sitesine veya kod bir kimlik atamanıza ve Office için genel olarak sabit bir kimlik ayarlanmasını önlemenize olanak tanır. Bu kimlik ilgili bilgisayar için önceden yapılandırılmış ve kayıt defteri kovanı yüklenmiş olduğu sürece, Office bu kimlik altında çalışır ve doğru şekilde yüklenir. Bu seçenek genelde en esnek ve güvenli olan seçenektir; ancak, önceki seçenek gibi, bu seçenek de görünür bir masaüstüyle etkileşim sunmaz ve bazı ek kurulum ayarları gerektirir. Office'i bu şekilde yapılandırma hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'nda yer alan aşağıdaki makaleye bakın:
(http://support.microsoft.com/kb/288367/ )Office uygulamaları belirli bir kullanıcı hesabı altında çalışacak biçimde nasıl yapılandırılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
288368Yukarıdaki seçeneklerden hangisinin gereksinimlerinizi karşıladığına ve çözümünüzü dağıtmak için en uygun seçenek olduğuna karar vermelisiniz. Burada sağlanan bilgilerin, istemcilerle ilgili tüm sorunları gidereceği garanti edilmez. Dağıtım öncesinde kapsamlı olarak sınamanız önerilir.
(http://support.microsoft.com/kb/288368/ )Office uygulamaları bir COM+/MTS paketinden otomasyon için nasıl yapılandırılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
Sunucu tarafında Otomasyon hakkında ek bilgi için, Microsoft Bilgi Bankası'nda yer alan aşağıdaki makaleye bakın:
169321
(http://support.microsoft.com/kb/169321/ )COM sunucularını etkinleştirme NT pencere istasyonları (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
Makale numarası: 257757 - Last Review: 20 Mart 2007 Salı - Gözden geçirme: 13.5
Bu makaledeki bilginin uygulandığı durum: