Sunucu tarafında Office Otomasyonu ile ilgili konular

Makale çevirileri Makale çevirileri
Makale numarası: 257757 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

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.

Daha fazla bilgi

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 sorunlar

Office'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.
  1. Kullanıcı Kimliği: Office Uygulamaları çalıştırıldıklarında, Otomasyon yoluyla başlatılmış olsalar da bir kullanıcı kimliği kullanılmasını gerektirir. Uygulamayı başlatan kullanıcı için kayıt defteri kovanındaki ayarlara bağlı olarak araç çubuklarını, menüleri, seçenekleri, yazıcıları ve bazı eklentileri başlatmaya çalışırlar. Birçok hizmet, kullanıcı profili olmayan hesaplar altında (SYSTEM veya IWAM_[sunucuadı] hesapları gibi) çalışır ve bu nedenle de başlangıç sırasında Office düzgün başlatılamayarak CreateObject veya CoCreateInstance öğesinde bir hata döndürebilir. Office uygulaması başlatılabilse bile, bir kullanıcı profili olmadan diğer işlevler düzgün çalışmayabilir. Office Otomasyonu'nu bir hizmetten gerçekleştirmeyi planlıyorsanız, kodunuzu veya Office'i yüklü bir kullanıcı profiliyle çalışacak biçimde yapılandırmanız gerekir.
  2. Masaüstüyle Etkileşim: Office Uygulamaları, etkileşimli bir masaüstü altında çalıştırıldıklarını varsayar ve bazı durumlarda belirli Otomasyon işlevlerinin düzgün çalışması için görünür olmaları gerekir. Beklenmeyen bir hata oluşursa veya bir işlevi tamamlamak için gereken bir parametre belirtilmemişse, Office, kullanıcının ne yapmak istediğini soran bir kalıcı iletişim kutusu aracılığıyla kullanıcıya soracak biçimde tasarlanmıştır. Etkileşimli olmayan bir masaüstündeki kalıcı iletişim kutusu yok sayılamaz ve yok sayılırsa ilgili iş parçacığının süresiz olarak yanıt vermemesine (askıda kalmasına) neden olur. Belirli kodlama uygulamaları bu durumun oluşma olasılığının azaltılmasına yardımcı olabilse de tümüyle engelleyemez. Bu durum, Office Uygulamalarının bir sunucu tarafı ortamından çalıştırılmasını riskli hale getirir ve desteklenmemesine neden olur.
  3. Yeniden Kullanılabilirlik ve Ölçeklenebilirlik: Sunucu tarafı bileşenleri, birden çok istemci için en az yük ve yüksek akış verimi sağlayan, yeniden kullanılabilirliği yüksek, çok iş parçacıklı COM bileşenleri gerektirir. Office Uygulamaları bu gereksinimlerin neredeyse hiçbirini karşılayamaz. Tek bir istemci için yoğun kaynak kullanımı gerektiren çeşitli işlevler sağlayacak biçimde tasarlanmış, yeniden kullanılabilirlikleri olmayan STA tabanlı Otomasyon sunucularıdır. Sunucu tarafı çözümü olarak kısıtlı ölçeklenebilirlik seçenekleri sunarlar ve yapılandırma aracılığıyla değiştirilemeyen (bellek gibi) önemli öğelerle ilgili kısıtlamalara sahiptirler. Daha da önemlisi, aynı anda çalışabilen örnek sayısını kısıtlayan ve çok istemcili bir ortamda yapılandırılırsa yarış durumlarına neden olan genel kaynakları (bellekle eşlenen dosyalar, genel eklentiler veya şablonlar ve paylaşılan Otomasyon sunucuları gibi) kullanırlar. Aynı anda birden çok Office Uygulaması örneği çalıştırmayı planlayan geliştiricilerin, olası kilitlenmeleri veya veri bozulmalarını önlemek için Office Uygulaması'na erişimi "havuza alması" veya serileştirmesi gerekir.
  4. Esneklik ve Kararlılık: Office 2000, Office XP, Office 2003 ve Office 2007, son kullanıcı açısından kurulumu ve kendi kendine onarımı kolaylaştırmak için Microsoft Windows Installer (MSI) teknolojisini kullanır. MSI'da, çalışma zamanı sırasında (sistem için veya daha çok belirli bir kullanıcı için) özelliklerin dinamik olarak yüklenebilmesini ya da yapılandırılabilmesini sağlayan "ilk kullanımda yüklensin" kavramı kullanılmaya başlanmıştır. Bu özellik, bir sunucu tarafı ortamında performansı düşürmesinin yanı sıra, kullanıcıdan yükleme işlemini onaylamasını veya uygun yükleme diskini sağlamasını isteyen bir iletişim kutusunun görüntülenme olasılığını da artırır. Office'in bir son kullanıcı ürünü olarak esnekliğini artıracak biçimde tasarlanmış olmasına karşın, bir sunucu tarafı ortamında Office'in MSI özelliklerini kullanma biçimi verimliliği düşürmektedir. Üstelik, sunucu tarafında çalıştırıldığında Office'in genel olarak kararlılık düzeyi garanti edilemez, çünkü bu şekilde kullanım için tasarlanmamış veya sınanmamıştır. Office'in bir ağ sunucusunda hizmet bileşeni olarak kullanılması, ilgili makinenin ve dolayısıyla da genel olarak ağın kararlılığını düşürebilir. Sunucu tarafında Office'i otomatikleştirmeyi düşünüyorsanız, programı, kritik işlevleri etkilemeyen ve gerektiğinde yeniden başlatılabilen bir adanmış bilgisayarla yalıtmayı deneyin.
  5. Sunucu Tarafı Güvenliği: Office Uygulamalarının hiçbir zaman sunucu tarafında kullanılması amaçlanmadığı için, dağıtılmış bileşenler nedeniyle oluşan güvenlik sorunları da dikkate alınmamıştır. Office gelen isteklerin kimlik doğrulamasını yapmaz ve sunucu tarafı kodunuzdan istem dışı olarak makrolar çalıştırmanıza veya makro çalıştırabilecek başka bir sunucuyu başlatmanıza karşı sizi korumaz. Sunucuya anonim bir Web konumundan yüklenmiş dosyaları açmayın! Son ayarlanmış güvenlik ayarlarına bağlı olarak, sunucu makroları tam ayrıcalıkları olan bir Administrator veya System bağlamında çalıştırarak ağınızın güvenliğinin aşılmasına neden olabilir! Office, işlemleri hızlandırmak amacıyla istemci kimlik doğrulaması bilgilerini önbelleğe alabilen birçok istemci tarafı bileşeni (Basit MAPI, WinInet ve MSDAIPP gibi) de kullanır. Sunucu tarafında Office otomatikleştirilirse, bir örneği birden çok istemciye hizmet verebilir ve ilgili oturumda kimlik doğrulaması bilgileri önbelleğe alınmış olduğu için, bir istemci başka bir istemcinin önbelleğe alınmış kimlik bilgilerini kullanabilir ve böylece diğer kullanıcıların kimliğine bürünerek, kendisine atanmamış erişim izinlerine sahip olabilir.
Teknik sorunların yanı sıra, bu tür bir tasarımın lisans açısından da uygulanabilirliğini göz önüne almalısınız. Geçerli lisans yönergeleri, istemcilerde lisanslı Office kopyaları bulunmadığı sürece Office Uygulamalarının ilgili istemci isteklerine hizmet vermek üzere bir sunucuda kullanılmasını engellemektedir. Son Kullanıcı Lisans Sözleşmesi (EULA), lisanslı olmayan iş istasyonlarında Office işlevselliği sağlamak üzere sunucu tarafında Otomasyon kullanılmasını kapsamamaktadır.

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:
  • CreateObject/CoCreateInstance, aşağıdaki çalışma zamanı hata iletilerinden birini döndürüyor ve Otomasyon için başlatılamıyor.

    Microsoft Visual Basic (VB) veya ASP'de:
    • İleti 1
      Çalışma zamanı hatası '429': ActiveX bileşeni nesneyi oluşturamıyor
    • İleti 2
      Çalışma zamanı hatası '70': İzin verilmedi
    Microsoft Visual C veya Visual C++:
    • İleti 1
      CO_E_SERVER_EXEC_FAILURE (0x80080005): Sunucunun yürütme işlemi başarısız oldu
    • İleti 2
      E_ACCESSDENIED (0x80070005): Erişim reddedildi
    Bu hatalar, sunucu tarafı kodunun bir kullanıcı profili olmadan çalışması veya başlatma bağlamı için belirtilen kullanıcı kimliğinin uygun DCOM izinleri olmaması nedeniyle görüntülenir.
  • Bir Office belgesi açıldığında aşağıdaki hatalardan birine neden oluşur:
    • İleti 1
      Çalışma zamanı hatası '5981' (0x800A175D): Makro deposu açılamadı
    • İleti 2
      Çalışma zamanı hatası '1004': '~' nesnesinin '~' yöntemi başarısız oldu
    Bu hatalar, genelde izinlerin yetersiz olması veya bir VBA bileşen kaydının bulunmaması nedeniyle VBA'nın başlatılması sonucunda oluşur; her iki durum da kullanıcı profili olmayan bir hesaptan kullanıcının kod çalıştırması (sorun #1) ve kullanıcı simgesinin Etkileşimli SID değeri içermemesi durumunda görülür.

  • CreateObject/CoCreateInstance askıda kalıyor ve hiçbir şekilde tamamlanmıyor ya da döndürülmesi uzun zaman alıyor. Bazı sunucularda, oluşturma işlemi hızla gerçekleştirilir ama Windows (NT) Event Log'da (Olay Günlüğü) 1004 hataları görülür.

    Sorun genelde sunucu tarafında kod çalıştıran (sorun #2) etkileşimli olmayan bir masaüstündeki kalıcı iletişim kutusudur. İletişim kutusu bir MSI bileşeni yükleme sorunu (eksik kayıt defteri girdisi veya bozuk dosya yansıması) nedeniyle görüntüleniyorsa, yükleme noktası bulunamazsa yükleme CD'sini ister ve bir ya da birden çok bileşeni yeniden yükler (sorun #4).
  • Belirli işlevler beklenmedik biçimde başarısız oluyor veya süresiz olarak askıda kalıyor.

    Yazıcılar, eşlene sürücüler, OLE katıştırılmış nesneleri ve pano gibi etkileşimli olmayan (sorun #2) belirli kaynaklar kullanılamayabilir veya durumları tanımsız hale gelebilir. Aynı şekilde, bir kullanıcı profili olmadan (sorun #1), ağ kaynakları da kullanılamaz ve izinler en az düzeydedir.
  • Birden çok istek veya baskı sınaması çalıştırmak, bir Office uygulamasının başlatılması ya da sonlandırılması işleminde kodun başarısız olmasına, askıda kalmasına veya çökmesine neden olabilir. Bu durumda, işlem bellekte çalışır durumda kalır ve sonlandırılamaz ya da otomatikleştirilen uygulamanın tüm örnekleri bu noktadan sonra başarısız olur.

    Office uygulamaları genel kaynakları paylaştığı için (sorun #3), bir Office uygulamasına erişimin başlangıç, kapatma, yazdırma, verme ve OLE bağlantısı güncelleştirme (DDE bildirimleri dahil) gibi olaylar da dahil olmak üzere belirli eylemler için serileştirilmesi gerekir.
Burada listelenenlere ek olarak başka sorunlar veya iletiler de görülebilir, ancak bunlar genelde yukarıda listelenen beş sorun nedeniyle oluşmaktadır. Bu türde hataları gidermek için, geliştiriciler, Office'in çalışma ortamını bir istemci tarafı durumuna benzetilecek biçimde yapılandırmalı veya Office uygulamasını sunucu tarafındaki tüm kodlardan kaldırıp onun yerine daha fazla ölçeklenebilir bileşenler (veya istemci tarafında Otomasyon) kullanmalıdır.

Sunucu tarafında çalıştırırken Otomasyon alternatiflerini kullanma

Microsoft, 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 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 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 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 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 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 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 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 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 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 İ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 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)
İş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:

Aia Software B.V.
http://www.aia-itp.com
Polar
http://www.polarsoftware.com
SoftArtisans
http://www.softartisans.com
SyncFusion
http://www.syncfusion.com
Keylogix
http://www.activedocs.com
Not 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.

Office'i sunucu tarafında çalışacak biçimde yapılandırma

Baş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:
  • Projenizi, Office'i yalıtacak ve kapsülleyecek biçimde tasarlayın.
  • Projenizin kodunu, sorunları belirleyecek ve bunları dinamik olarak giderecek biçimde geliştirin.
  • Projenizde Office tarafından kullanılacak bir kullanıcı kimliği ve profil belirleyin.
Proje tasarımınızda Office Otomasyonu kullanmayı deneyecekseniz, sunucu tarafı güvenliği ve Office'in yeniden kullanılabilir olmaması nedeniyle oluşan sorunları göz önüne almalısınız. Office kullanımınızı bir serileştirilmiş nesne (karşılıklı dışlama veya özel tanımlanmış kilitleme öğesi) tarafından denetlenen belirli bir örnekle sınırlayın ya da gerektiğinde uygulama nesneleri yayımlayan ama serileştirme gerektiren öğeleri denetleyen bir özel nesne işleyicisinden (veya kesicisinden) sıkı denetlenen bir örnek kümesini "havuza alın". Office belirli bir durumun geçerli olduğunu varsaydığı için, belirli eylemleri (başlatma, kapatma, yazdırma gibi) aynı anda gerçekleştiren birden çok istemci, çağrıyı yapan bir veya daha fazla iş parçacığında bir hata iletisi görüntüleyerek çakışmaya ve hatta kilitlenmeye neden olabilir ve kullanıcıdan daha fazla bilgi isteyebilir ya da tüm örnekler tarafından kullanılan bir genel kaynağı bırakmayabilir.

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:
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)
Sorunları 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.

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:
  • Otomasyon yoluyla başlatılan Office uygulamasının tüm örneklerini Etkileşimli kullanıcı olarak çalışacak biçimde yapılandırın.
  • Otomasyon yoluyla başlatılan Office uygulamasının tüm örneklerini belirli bir kullanıcı olarak çalışacak biçimde yapılandırın.
  • Bir MTS/COM+ paketi kullanmak ve Office uygulamasının kendisini başlatan kullanıcının kimliğini devralmasına izin vermek yoluyla, kodunuzu belirli bir kullanıcı olarak çalışacak biçimde yapılandırın.
İlk seçenek, Office'e belirli bir masaüstü için hem kimlik hem de etkileşim sağlar ve hata ayıklama sırasında tercih edilen seçenektir (çünkü yerel olarak oturum açan kullanıcı tarafından Office ve tüm iletişim kutuları ya da GPF hataları görülebilir). Başarıyla çalışması için Etkileşimli kullanıcı oturumunun açık kalması gerekmez, dolayısıyla bazı durumlar için uygun olmayabilir. Daha fazla bilgi için, aşağıdaki Microsoft Bilgi Bankası makalesine bakın:
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)
İ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:
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)
Üçü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:
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)
Yukarı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.

Referanslar

Sunucu tarafında Otomasyon hakkında ek bilgi için, Microsoft Bilgi Bankası'nda yer alan aşağıdaki makaleye bakın:
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)

Özellikler

Makale numarası: 257757 - Last Review: 20 Mart 2007 Salı - Gözden geçirme: 13.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Project 2002 Standard Edition
  • Microsoft Project 2000 Standard Edition
  • Microsoft Project 98 Standard Edition
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Visio 2000 Standard Edition
  • Microsoft Visio 2000 Professional Edition
  • Microsoft Visio 2000 Enterprise Edition
  • Microsoft Visio 2000 Technical Edition
  • Microsoft MapPoint 2006 Standard Edition
  • Microsoft MapPoint 2004 Standard Edition
  • Microsoft MapPoint 2002 Standard Edition
  • Microsoft MapPoint 2001 Standard Edition
  • Microsoft MapPoint 2000 Standard Edition
  • Microsoft Autoroute Europe 2006
  • Microsoft Office OneNote 2003
  • Microsoft Office OneNote 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2007
Anahtar Kelimeler: 
kbqfe kbautomation kbprogramming kbservice KB257757

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com