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.
Ö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:
1 2 3 4 | Application xlApp = new Application(); Workbook xlWorkbook = xlApp.Workbooks.Open("C:\test.xls"); _Worksheet xlWorksheet = xlWorkbook.Sheets[1]; Range xlRange = xlWorksheet.UsedRange; |
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.
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.
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.
Eğer word yazılımını tekrar kayıt etmek isteseniz alttaki kodu çalıştırmalısınız.
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.
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.
Fotograflar kontrol edebilirmisiniz sitenizde çıkmıyor
Merhabalar 2.ci adımı denediğim sırada yazılımınız bu yetkiye erişim vermiyor diye hata veriyor, böyle bir hata ile karşılaştınız mı ne yapabilirim bu durumda ?
Anladığım kadarıyla windows üzerinden bir yetki problemi var bu durumda administrator modda komutu çalıştırmayı denemelisiniz.
Anlatım için çok teşekkürler, ellerinize sağlık. Bu yaz genellikle kullanıcıların host’a projeyi atıpda çalıştıramadıklarında ortaya çıkıyor ve bir türlüde çözülemiyor. Çözüm için hosting firmalarına ileteceğimiz çok güzel bir anlatım.
Bşarılarınıın devamını diliyorum.
Teşekkür ederim.