Asp.Net’de Excel Kullanımında Çıkan “Retrieving the COM class factory for component with CLSID” Hatası ve Çözümü

Asp.net’de excel üzerinden bir geliştirme yaptığınızda başlıkta yer alan hatayı alıyorsanız o zaman makale devamındaki adımlar sizi çözüme götürebilir farklı yöntemlerden en azından biri çözüm olacaktır düşüncesindeyim çünkü bu tür makaleleri yazmadan önce çözüme hangi yolları denedikten sonra ulaştığımı adım adım not alıyorum bu şekilde makalelerimi yazıyorum zaten tecrübesine sahip olmadığın hiçbirşeyin makelesini yazmıyorum.

asp.net large 090113044924 1

Öncelikle hatayı nasıl aldığıma bakarsak çok basit bir şekilde Microsoft.Office.Interop.Excel namespace’i altında yer alan Application sınıfından bir örnek alıp C:\test.xls dosyasını açıyoruz ilk sayfaya erişip excel kullanım aralığını elde ediyoruz ve kodumuzda şu şekilde:

Fakat yetki ile alakalı bir problemimiz olduğu için başlıktada belirttiğim gibi şu hatayı alıyoruz.

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).

Bu sorunu aşmak için izlemeniz gereken yöntemleri şöyle sıralayabiliriz.

Bu yöntemlere makinede office kurulu olduğu varsayılıp anlatım o şekilde yapılacaktır.

Yöntem 1

Microsoft Office Excel güvenlik ayarlarını gerçekleştirmek için Bileşen Servislerine erişmeniz gerekiyor bunun için 2 farklı yöntemler bileşen servislerine erişebilirsiniz. İlki Kontrol Panel > Yönetimsel Araçlar > Bileşen Servisleri bir diğeride Çalıştır > mmc comexp.msc /32 komutunu çalıştırarak bileşen servisleri penceresini açabilirsiniz ardından alttaki iki grafikte gösterildiği gibi Component Services > Computers > My Computer > DCOM Config dizinine gidin burada office sürümünüe göre değişiklik gösterecek olan Microsoft Excel Application yada Microsoft Excel 97-2003 Document kayıtlarından biri olması gerekiyor.

asp.netde excel kullanımı 1

asp.netde excel kullanımı 2

Bende Office 2016 kurulu olduğundan Microsoft Excel Application olarak gözüküyor. Burada karar vermeniz gereken bir durum var oda eğer 1.yöntem sizin için çözüm olursa bu çözümü sadece excel uygulamayı içinmi yapmak istersiniz yoksa excel haricinde asp.net’de excel gibi birden fazla yazılım katmanını kullanıyor iseniz o zaman bu yetki işini burada resimde gözüken Microsoft Excel Application için değilde listelenen tüm uygulamalara yapmak için 2 üstte yer alan My Computers kırılımına sağ tuş yapıp Properties kısmından Security sekmesinden gerekli değişiklikleri yapabilirsiniz.

asp.netde excel kullanımı 3

2. Yöntem

Excel yazılımının sisteme tekrar kaydını gerçekleştirerek belki sorununuza çözüm bulabilirsiniz. Örnek Excel yazılımınızı kayıt etmek için öncelikle excel dizinine komut satırından erişmeniz gerekiyor eğer Office 2010 kullanıyorsanız C:\Program Files (x86)\Microsoft Office\Office14, Office 2007 kullanıyorsanız C:\Program Files (x86)\Microsoft Office\Office12 yada Office 2016 kullanıyorsanız C:\Program Files\Microsoft Office\Office16 yoluna gitmelisiniz.

Ben office 2016 kullandığım için komut satırından office 2016’ya dizine gidiyorum ve alttaki komutu yazıyorum böylelikle excel kaydını tekrar gerçekleştiriyorum sisteme.

C:\Program Files\Microsoft Office\Office16 > EXCEL.EXE –REGSERVER

Eğer word yazılımını tekrar kayıt etmek isteseniz alttaki kodu çalıştırmalısınız.

C:\Program Files\Microsoft Office\Office16 > WINWORD.EXE –REGSERVER

3. Yöntem

Office kurulumunu eksiksiz tamamladıktan sonra makineyi yeniden başlatın.

 

Eğer üstteki hatayı çözdükten sonra alttaki gibi bir hata alırsanız çözüm kısmındaki detayları uygulayın.

Server Error in ‘/’ Application.

Microsoft Office Excel cannot access the file ‘C:\inetpub\wwwroot\Content\yemek_listesi.xls’. There are several possible reasons:

• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: Microsoft Office Excel cannot access the file ‘C:\inetpub\wwwroot\Content\yemek_listesi.xls’. There are several possible reasons:

• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.

Çözüm için yapmanız gereken anlamsız gözükmesine rağmen 2.yöntem’i denedikten sonra yeni çıkan hataya 3.yöntemi uyguladıktan sonra kesin olarak benim sorunuma çözüm oldu.

QHewTIwR1AQ2BMiUpo z7yDuzCFaUOylzpFkOXuzngE4vxWYQa7ZDm5j0ad4YPZ9mUVtQJ86C5Dhz2jc9dXn6FEVudByLu aR ZgC1Dfb29 9V0B5lUMAQAaH7aDSkbqM iuZjtwYRX1RbasRGqAFqtisT5cYpn7pldNu52M6LLLnpQjdLHgOaFcycAlnxAvvK9IjxFFQyer6wcstelbeS8sZhX1ABqlJyiRfkKOufIslDWKZAxJiMPKuJF 0gJtSKDYT LOXKUOyyR5hE7NjHoMTspfOKYNz2HPv G Z0P4v70EDhNGziIGErv1s9zybylM7n0fO2RS99WL6f75Aq3y grmi7700dA0 4 WruJj2a25RGW4lpBhremH n8I4TffnRwL9Ft0JhPH9LiKHGWj1QY9FvhoOxHHlk8CmmtUUP J8crwfG20GGq34vRser1RICg80tmHzIgdORuUdYah0vm97FzVRMNS4WXbMs5vZ34yQ8 WhiEi9sM44SHW8AzwtU8xRaLKoFI9ekVxiou1cbXFK5jXxTKumktWnlq2YEipLJoVzKKuG9gjqR QLbOQEVcOmW sK9izcapPXpki2eQouqw31kQUvd7cQQ=w1045 h553 no

Ben denediğim 3 farklı yöntemide sizlerle paylaştım belki benim işime yarayan çözümler sizin işinize yaramayıp diğer yöntemler ile çözüme kavuşabilirsiniz.

5/5 - (3 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et