2015-03-31 3 views
0

Я пытаюсь сохранить файл Excel в папку общего доступа.Ошибка: операция была отключена

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string conn =  ConfigurationManager.ConnectionStrings["NameConn"].ConnectionString; 
      DataTable dt = new DataTable(); 
using (SqlConnection odbcCon = new SqlConnection(conn)) 
      { 
       odbcCon.Open(); 
       SqlCommand cmd = new SqlCommand("GetValues", odbcCon); 
       cmd.Parameters.AddWithValue("@Name", "abc"); 
       cmd.CommandType = CommandType.StoredProcedure; 
       SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
       adapter.Fill(dt); 

      } 
    string destFilename = HttpContext.Current.Server.MapPath("~/A.xls"); 
    System.Net.WebClient client = new System.Net.WebClient(); 
    client.DownloadFile(path, destFilename); 
} 

Web.config 

<httpRuntime targetFramework="4.5" executionTimeout="10000" maxRequestLength="2147483647" shutdownTimeout="360" /> 

И я получаю эту ошибку:

  • The operation has timed out.

Можете ли вы сказать мне, где я мог бы неправильно.

+0

является текущим файлом, открытым в Excel? –

+0

@ D.Mac Я делаю файл и сохраняю его. Я думаю, ** var destFilename = File.Create (@ "\\ Networkerver path \ websites"); ** будет конвертировать в строку для хранения файла dest. – hello

+0

@Bolu "path" будет содержать загруженные данные, где в качестве destFilename будут получены данные. Но я получаю ошибку в строке ** var destFilename = File.Create (@ "\\ Networkerver path \ websites"); ** – hello

ответ

0

File.Create Method возвращает FileStream, в то время как WebClient.DownloadFile Method нуждается в два string параметров один для The URI from which to download data. и других для The name of the local file that is to receive the data.

Так что вы должны сделать что-то вроде:

//you may also need to check if the file is exist. 
string destFilename = @"\\Networkserver path\websites\destexcel.xlsx"; 

System.Net.WebClient client = new System.Net.WebClient(); 
client.DownloadFile(path, destFilename); 
+0

Если я это сделаю: 'string destFilename = HttpContext.Current.Server.MapPath (" ~/abc.xls "); System.Net.WebClient client = новый System.Net.WebClient(); client.DownloadFile (путь, destFilename); ' ** Путь - это вызов веб-службы, который получит данные ** Все работает отлично, но вместо хранения в локальной системе я хочу сохранить его в сети дорожка. – hello

+0

@hello, не можете ли вы настроить виртуальный каталог в своем IIS и сопоставить его с общим сетевым путем, а затем использовать 'HttpContext.Current.Server.MapPath (путь/abc.xls)' в методе 'DownloadFile'? – Bolu

+0

Я получаю ошибку времени. У меня есть подключение к базе данных, так что будет ли время ожидания для моего соединения sql или моего приложения? – hello

Смежные вопросы