bereitgestellt wurde. Ich habe ein sehr offensichtliches Problem, für das ich keine Lösung finden kann. Ich importiere Daten aus einer CSV-Datei in meine SQL-Datenbank - Dies funktioniert perfekt in meiner Entwicklungsumgebung, aber funktioniert nicht einmal auf unserem Dedicated-Server bereitgestellt (Dies ist vorübergehend für Testzwecke, die auf einen Webserver verschoben werden, ich habe nur ftp Zugriff auf, so kann nichts auf jedem installieren).Die CSV-Datei kann nicht importiert werden, sobald die MVC-Anwendung auf dem Server
Hier ist mein Code:
public ActionResult ImportExcel(PipelineDetails model, HttpPostedFileBase FileUpload, int ProjectID)
{
string Result = "";
string UploadfileSaved_Path;
ProjectManager PM = new ProjectManager();
PipelineData PD = new PipelineData();
try
{
if (!FileUpload.FileName.EndsWith("csv"))
{
Result = "File type not allowed. Please import file using CSV format(Comma Delimited).";
return RedirectToAction("Index", "Pipeline", new { id = ProjectID, result = Result });
}
string[] lines = System.IO.File.ReadAllLines(FileUpload.FileName);
bool isHeader = true;
int i = 0;
foreach (string line in lines)
{
string[] col = line.Split(new char[] { ',' });
if (i >= 1)
{
isHeader = false;
}
else
{
if (col[0] != "Accumulated_Length" || col[1] != "Elevation" || col[2] != "Pipe_Outside_Diameter" ||
col[3] != "Wall_Thickness")
{
Result = "Import files Headers are incorrect. Please correct before retrying.";
return RedirectToAction("Index", "Pipeline", new { id = ProjectID, result = Result });
}
}
if (col[0] == null || col[1] == null || col[2] == null || col[3] == null)
{
Result = "Some values are missing in the Import File. Please check the data.";
return RedirectToAction("Index", "Pipeline", new { id = ProjectID, result = Result });
}
if (!isHeader)
{
if (i == 1)
{
PM.DeleteALLPipeLine_forProject(ProjectID);
}
using (RexusTradingEntities RTE = new RexusTradingEntities())
{
PD.Accumulated_Length = Convert.ToDecimal(col[0]);
PD.Elevation = Convert.ToDecimal(col[1]);
PD.Pipe_Outside_Diameter = Convert.ToDecimal(col[2]);
PD.Wall_Thickness = Convert.ToDecimal(col[3]);
if (col[4] != "" && col[4] != null)
{
PD.Control_Point_Description = col[4];
}
if (col[5] != "" && col[5] != null)
{
PD.Control_Point_Size = Convert.ToDecimal(col[5]);
}
PD.fkiProjectID = ProjectID;
PD.CreateDateTimeStamp = DateTime.Now;
RTE.PipelineDatas.Add(PD);
RTE.SaveChanges();
}
}
i++;
}
}
catch (Exception ex)
{
//Result = "There is a problem with the Import File. Please check the file format or data.";
Result = ex.Message + " : " + FileUpload.FileName;
return RedirectToAction("Index", "Pipeline", new { id = ProjectID, result = Result });
}
//Adding the Node Numbers in sequencial order
PM.UpdatePipelineNodeNumbers(ProjectID, model);
Result = "Import Success";
return RedirectToAction("Index", "Pipeline", new { id = ProjectID, result = Result });
}
Und die Fehler, die ich bekommen habe ist: 'Could not find file 'C:\Windows\SysWOW64\inetsrv\RexusImportTemplate.csv'
nun so offensichtlich, wie diese (Datei nicht gefunden) erscheinen mag, verwende ich einen Dialog, in dem ich auswählen die Datei auf meinem PC (und andere werden auf ihren PCs), so dass ich nicht die Datei speichern muss (es sei denn, ich muss, wenn krank sogar Berechtigungen haben).
Ich versuchte mit FileUpload.SaveAs(FileUpload.FileName)
, aber dann habe ich einen Fehler, dass diese saveas nur im Stamm gespeichert werden kann. Dann versuchte ich FileUpload.SaveAs("~/" + FileUpload.FileName)
und sagte, dass ich keinen Zugriff auf den Ordner habe ...
Ich dachte, dass die Datei aus dem angegebenen Pfad gelesen wird, anstatt einen Pfad auf dem Server, auf dem die Webanwendung bereitgestellt wurde ... ?
Ich habe mich schon eine Weile darum gekümmert - gibt es irgendwelche Arbeiten, die irgendjemand kennt?
Vielen Dank im Voraus!
Danke für die Antwort. Ich werde dies schnell überprüfen und lassen Sie mich wissen, was meine Ergebnisse sind. – AxleWack
Gave it a Versuch und Zugriff verweigert: Zugriff auf den Pfad 'C: \ inetpub \ wwwroot \ SCF \ AirFlo \ App_Data \ Upload \ RexusImportTemplate.csv' wird verweigert – AxleWack
Also habe ich es funktioniert, aber nur wenn ich Lese-/Schreibzugriff auf der App_Data-Ordner - Was ist großartig und alles, was es funktioniert, aber ich könnte mit dem gleichen Problem sitzen, wenn ich endlich FTP auf dem Client-Webserver ... verdammt. Danke in jedem Fall. Wird Ihre Antwort als Antwort markieren. – AxleWack