2016-12-21 9 views
0

.NET MVCプロジェクトがあり、一時フォルダからファイルをダウンロードしようとしています。ここリモートサーバーから「このサイトにアクセスできない」

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

そして、私のコントローラのコードです:

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"); 
    } 

このコードは、IIS上で動作し、ファイルがダウンロードされているが、ここに私のビューのコードです。しかし、リモートサーバーからダウンロードしようとすると500エラーが発生します。このサイトは<で Webページに到達することはできません

...>一時的に停止しているか、新しいウェブアドレスに移動した可能性があり。 ERR_INVALID_RESPONSE

そして最悪の部分は、IISとリモートサーバーの両方で作業しているシステムでは、いくつかのほぼ正確なコードスニペットがあるということです。

何ができますか?

UPDATE

朗報。私は郵便配達員を試してみると、間違ったパスでエラーが見つからないファイルが投げられました。

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

私は困惑しています...どうやってIIS上で間違った経路で作業していたのですか?

+1

「Web.Common.Properties.Settings.Default.TempDocPath」が返される内容を教えてください。 –

+0

リモートサーバーのURLにpingを実行するとどうなりますか? Postmanまたはブラウザ経由で、あなたのマシンからリモートサーバにアクセスできますか? –

答えて

0

Webアプリケーションのルートフォルダ内に〜/ Tempなどの一時フォルダを作成し、次にこのコードを使用してWeb.Common.Properties.Settings.Default.TempDocPathではなくそのフォルダにアクセスする必要があります。これはちょうど定数だと考えてください。

System.Web.Hosting.HostingEnvironment.MapPath("~/Temp") 
関連する問題