2015-07-02 1 views
1

Я только что создал приложение mvc 4, в этом приложении у меня есть функция для загрузки файла Excel в базу данных.«Свойство ConnectionString не было инициализировано». Ошибка в SQL bulkcopy upload

Это нормально работает в локальном хосте.

Но когда я раскрываю в IIS и попытаться загрузить Excel file.I'm получать следующие ошибки

Свойство ConnectionString не был инициализирован.

Эти строки соединения, я использую для загрузки файлов Excel

<add name="dbconnection" connectionString="Data Source="000.000.00.00";Initial Catalog=AFFHEC_DB;Persist Security Info=True;User ID=**;Password=****" providerName="System.Data.SqlClient" /> 
<add name="constr" connectionString="data source=000.000.0.000;Initial catalog=AFFHEC_DB;user id=**;password=*****;" /> 
<add name="Excel07+ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES';" /> 
<add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES'" /> 

Это код для SQL массового копирования загрузить

[HttpPost] 
    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Student(HttpPostedFileBase FileUpload1, tbl_hec_Programme programme) 
    { 

     try 
     { 
      string conString = string.Empty; 
      //Upload and save the file 


      if (Request.Files["FileUpload1"].ContentLength > 1) 
      { 
       try 
       { 
        string excelPath = Path.Combine(HttpContext.Server.MapPath("~/Content/"), Path.GetFileName(FileUpload1.FileName)); 
        FileUpload1.SaveAs(excelPath); 


        string extension = System.IO.Path.GetExtension(FileUpload1.FileName); 
              conString = string.Format(conString, excelPath); 
       } 
       catch (Exception ex) 
       { 

        this.SetNotification("The file type submitted is invalid", NotificationEnumeration.Error); 

       } 

       try 
       { 

        using (OleDbConnection excel_con = new OleDbConnection(conString)) 
        { 
         excel_con.Open(); 

         DataTable dtExcelData = new DataTable(); 

         string query = "SELECT " + 
              "s1.HEC_ID, " + 
              "s1.Student_Personal_ID, " + 
              "s1.Student_Passport_Number, " + 
              "s1.Student_ID_by_University, " + 
              "s1.First_Name, " + 


         // // join three tables 
         "FROM (((([Personal_Data$] as s1) " + 
         "LEFT OUTER JOIN [Enrolment_Data$] as s2 ON s1.HEC_ID = s2.HEC_ID) " + 

         using (OleDbDataAdapter oda = new OleDbDataAdapter(query, excel_con)) 
         { 
          oda.Fill(dtExcelData); 
         } 

         string consString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
         using (SqlConnection con = new SqlConnection(consString)) 
         { 
          using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con, 
                 SqlBulkCopyOptions.CheckConstraints | 
                 SqlBulkCopyOptions.FireTriggers | 
                 SqlBulkCopyOptions.KeepNulls | 
                 SqlBulkCopyOptions.TableLock | 
                 SqlBulkCopyOptions.UseInternalTransaction | 
                 SqlBulkCopyOptions.KeepIdentity, 
                 null)) 
          { 
           //Set the database table name 
           sqlBulkCopy.DestinationTableName = "tbl_HEI_student"; 

           sqlBulkCopy.BulkCopyTimeout = 0; 

           sqlBulkCopy.ColumnMappings.Add("ID", "ID"); 
           sqlBulkCopy.ColumnMappings.Add("Student_Personal_ID", "Student_Personal_ID_CPR"); 
           sqlBulkCopy.ColumnMappings.Add("Student_Passport_Number", "Student_Passport_Number"); 
           ................ 


           con.Open(); 

           try 
           { 

            sqlBulkCopy.WriteToServer(dtExcelData); 

            int totalRowsAdded = dtExcelData.Rows.Count; 


            UploadStatusWriter(User.Identity.GetUserId(), Status_type, Date_type); 



            this.SetNotification("Student data successfully uploaded", NotificationEnumeration.Success); 



            return RedirectToAction("StudentIndex", "HEI"); 





           } 
           catch (Exception ex) 
           { 
            this.SetNotification(ex.Message, NotificationEnumeration.Error); 
            return RedirectToAction("Student", "Excel"); 
           } 
           finally 
           { 

            con.Close(); 


           } 
          } 
         } 
        } 
       } 
       catch (Exception ex) 
       { 
        this.SetNotification(ex.Message, NotificationEnumeration.Error); 
        return RedirectToAction("Student", "Excel"); 
       } 

      } 

      else 
      { 
       this.SetNotification("Please select a file first and then click the submit button", NotificationEnumeration.Error); 
       return RedirectToAction("Student", "Excel"); 

      } 



     } 
     catch (Exception ex) 
     { 
      return RedirectToAction("Student", "Excel"); 
     } 

    } 
+0

Не могли бы вы показать свой код? –

+0

Как вы запрашиваете db? [это может помочь вам] (http://stackoverflow.com/questions/1007786/how-to-fix-the-connectionstring-property-has-not-been-initialized) – Tikkes

+0

Нам нужно увидеть код, в котором вы взаимодействуете с Db и используя соединение. –

ответ

2

У меня была такая же проблема. После многих многих исследований, которые я нашел, мы должны сделать некоторые конфигурации в развертывании IIS, а также Разрешить разрешения для папки выпуска.

Вот эти конфигурации

Шаг 1

  1. Добавить собственное имя сайта

  2. "Содержимое каталога" Выберите правильный путь к папке выпуска

  3. Для переплет, «Тип» дают https или http, если вы развернете на своем компьютере для IP-адреса, укажите IP-адрес вашего сервера IP-адреса другого IP-адреса и найдите соответствующий порт.

  4. Для пула приложений держать его как DefaultAppPool на текущий

enter image description here

Шаг 2

Затем перейдите в Приложения Pools Найти пул приложений вашего веб-сайта и изменить его до ASP.NET v4.0 (если ваша платформа .NET 4.0)

enter image description here

Шаг 3

Перейти к вашему веб-приложений главной панели найти просмотр каталогов (в соответствии с разделом IIS)

enter image description here

Шаг 4

Двойной просмотр каталогов нажмите и включить это

enter image description here

Шаг 5

Найти ASP в приложении на главной панели (в соответствии с разделом IIS)

enter image description here

Этап 6

Щелкните правой кнопкой мыши по адресу ASP найти Включить родительский путь (под поведением). Затем сделать его значение в качестве Правды

enter image description here

Шаг 7

Затем перейдите на основную панель в вашем инструменте сены IIS под сайтами вы найдете развернутый site.Then щелкает правую кнопку мыши .find исследуйте перейти к местоположению этого выпуска папки

enter image description here

Шаг 8

правая кнопка мыши на этой папке перейдите к свойствам затем дать разрешения на соответствующие пользователь

enter image description here

После вышеуказанных изменений моей проблемы решена надежда ваших тоже.

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

  • Нет связанных вопросов^_^