2016-03-30 2 views
0

altında asp.net (C#) aracılığıyla Excel'den CSV'ye dönüştürme xlsx'i csv'ye dönüştürmek için basit bir prosedürüm var.IIS'den

public static void ConvertExcelToCsv(string source, string destination, int sheetNumber = 1) 
{ 

    if (File.Exists(destination)) File.Delete(destination); 

    Excel.Application xl = new Excel.Application(); 

    xl.DisplayAlerts = false; 
    Excel.Workbook workbook = xl.Workbooks.Open(source); 
    // workbook.Close(true); 
    workbook.SaveAs(destination, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV); 
    object misValue = System.Reflection.Missing.Value; 

    if (workbook != null) 
    { 
     workbook.Close(false, Type.Missing, Type.Missing); 
     xl.Workbooks.Close(); 
     Marshal.ReleaseComObject(workbook); 
    } 


    xl.Quit(); 
    GC.Collect(); 
    Marshal.FinalReleaseComObject(xl); 
} 

Yerel makinemde ve yerel IIS'de her şey iyi çalışıyor. Ancak web sunucusuna yükledikten sonra çalışmıyor gibi görünüyor. Yaptığı her şey yaklaşık 3 dakika işleniyor ve sonra zaman aşımına uğradı.

Bileşen

Services -> Computers -> My Computer -> DCOM Config -> Microsoft Excel Application -> IIS_IUSRS

ben de izin izinler ve ayrıca oluşturulan Masaüstü klasörleri

C:\Windows\SysWOW64\config\systemprofile\

ve ayrıca Yani şu anda

:-) 32bit içinde, var hiçbir fikir, neden çalışmıyor. Bununla benzer deneyimleriniz var mı, yoksa ne yapmalıyım?

+1

tarafından sevk yoluna uygun izinlere sahip olmasını sağlamak. Web sunucuları genellikle Excel'in yüklü değildir. Yapıyor olsalar bile, bir dosya dönüştürme için tam Excel programını çalıştırmak, performans için _awful_. –

cevap

0

Aldığınız tam hata nedir? IIS günlüklerinizi ve belirli hatalar için Uygulama olay günlüğünü kontrol edin. kontrol etmek için

birkaç nokta: çalışmadığından emin olun ve 32-bit uygulamaları etkinleştirme

  1. kopyalamak için gereken uygulama havuzuna web sunucusunda Excel yüklemediyseniz
  2. için true olarak ayarlanır Sitenizi yayınladığınızda etkileşimli montajlar. Bunu yapmak için, Interop referansı için Yereli Kopyala öğesini ayarlayın.
  3. uygulama Bu kod aslında göremiyorum bir pencere 'özel masaüstü' üzerinde Excel çalıştırarak çalışır source ve destination
+0

Evet, bu web sunucusunda 2013 ofisim var ve hata iletisi benim için çok garip: 2016-03-30 15:08:57 W3SVC5 C1W13622 15.57.47.152 POST /SecondForm.aspx - 84 - 15.87.165.14 Mozilla/5.0+ (Windows + NT + 6.1; + WOW64) + AppleWebKit/537.36 + (KHTML, + benzeri + Gecko) + Chrome/49.0.2623.87 + Safari/537.36 - http://c1w13622.itcs.hpicorp.net:84/ SecondForm.aspx 500 64 0 5361049 126176 – SmithiM

+0

Visual Studio'dan web sunucusunda aldığım her şeyi denediğimde, her şey iyi çalışıyor ... – SmithiM

+0

IIS alanında çok yeniyim, lütfen bana 1 numaralı noktayı açıklayabilir misiniz? belki adım adım :-) – SmithiM