asp.net-mvc
  • razor
  • 2016-12-21 9 views 0 likes 
    0

    Ich habe ein .NET MVC-Projekt und ich versuche, eine Datei aus dem temporären Ordner herunterladen. Hier ist meine Ansicht Code:Getting "Diese Website kann nicht erreicht werden" von Remote-Server

    window.open('@Url.Action("DownloadDocument", "Controller")?fileName=' + fileName, '_blank'); 
    

    Und hier ist mein Controller-Code:

    public FileResult DownloadDocument(string fileName) 
        { 
         string path = Web.Common.Properties.Settings.Default.TempDocPath + "OpenTable\\"; 
         if (!Directory.Exists(path)) 
         { 
          Directory.CreateDirectory(path); 
         } 
    
         return File(fileName, "application/xml", fileName + ".xml"); 
        } 
    

    Dieser Code funktioniert auf IIS und Datei heruntergeladen wird. Aber ich bekomme 500 Fehler, wenn ich versuche, es vom Remote-Server herunterzuladen.

    Diese Seite kann nicht Die Webseite unter < ...> könnte sein, vorübergehend oder es kann dauerhaft verschoben auf eine neue Web-Adresse erreichbar. ERR_INVALID_RESPONSE

    Und das Schlimmste daran ist, dass es einig fast genauer Code-Schnipsel in dem System, das in IIS und Remote-Server arbeiten.

    Irgendwelche Vorschläge, was getan werden könnte?

    UPDATE

    gute Nachricht. Als ich Postbote versuchte, warf es eine Datei nicht gefunden Fehler mit falschem Pfad. Es ist eine einfache Lösung:

    return File(Path.Combine(path, fileName), "application/xml", fileName + ".xml"); 
    

    So ist es mir ein Rätsel ... Wie und warum es lokal auf IIS mit falschem Pfad zu arbeiten?

    +1

    Können Sie mir sagen, was 'Web.Common.Properties.Settings.Default.TempDocPath' zurückgibt? –

    +0

    Was passiert, wenn Sie die URL des Remote-Servers pingen? Können Sie von Ihrem Computer über Postman oder über einen Browser auf den Remote-Server zugreifen? –

    Antwort

    0

    Sie müssen Ihren temporären Ordner im Stammordner Ihrer Webanwendung erstellen, z. B. ~/Temp, und dann den folgenden Code verwenden, um auf diesen Ordner statt auf Web.Common.Properties.Settings.Default.TempDocPath, I zuzugreifen denke das vielleicht nur eine Konstante.

    System.Web.Hosting.HostingEnvironment.MapPath("~/Temp") 
    
    Verwandte Themen