Mam aplikację mvc asp.net hostowaną na IIS. Mam formularz, z którego użytkownicy przesyłają pliki Excela zawierające 50k + wiersze. Czytałem plik excel z następującym kodem C#.Czytanie limitowanych wierszy z pliku Excela przesłanych w usługach IIS
public DataTable GetExcelDataTable(string fileName)
{
string connectionString = Path.GetExtension(fileName) == "xls" ?
string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data source={0}; Extended Properties=Excel 8.0;", fileName) :
string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", fileName);
var conn = new OleDbConnection(connectionString);
using (var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn))
{
var ds = new DataSet();
adapter.Fill(ds);
DataTable data = ds.Tables[0];
conn.Close();
conn.Dispose();
adapter.Dispose();
return data;
}
}
Problem polega na tym, że odczytuje tylko do 30 tys. Wierszy, ale nigdy do całego pliku Excela.
Co ciekawe, mogę czytać (z tym samym kodem) wszystkie wiersze, jeśli uruchomię aplikację mvc z visual studio, ale znowu, nigdy z IIS (IIS jest również na mojej maszynie) hostowanej stronie.
Wszelkie pomysły, dlaczego tak się dzieje?
jakiegokolwiek błędu można uzyskać po przeczytaniu 30k rekordy? –
nie, nie. Nie dostaję żadnych błędów.nie ma znaczenia, czy jego iis lub iisexpress (poprzez vs) – levi
Może pomóc w sprawdzeniu, jak wyglądają twoje pliki konfiguracyjne, ponieważ Twoje dane mogą przekraczać limity czytników. –