string HostName = System.Configuration.ConfigurationSettings.AppSettings["HostName"];
string strUser = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationUser"];
string strPWD = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationPWD"];
strFile = "9788191073072.zip";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(HostName + strFile);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(strUser, strPWD);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Response.AddHeader("content-disposition", "attachment;filename=" + strFile);
byte[] buffer = new byte[2 * 1024];
int read;
while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0) { Response.OutputStream.Write(buffer, 0, read); }
responseStream.Close();
response.Close();
1
A
回答
0
沒有任何真正的細節可以繼續,這可能必須在生產服務器上設置MIME類型。
這也可能是由於您和服務器之間可能存在的透明代理篩選策略。
再一次,你應該通過Fiddler做一個細粒度的跟蹤,看看服務器真正返回什麼,以及請求是否成功完成。
假設這是一個IIS服務器,服務器事件日誌中的外觀還可以告訴您應用程序池是否崩潰並重新啓動,看起來好像沒有錯誤,但響應不正確。
1
string HostName = System.Configuration.ConfigurationSettings.AppSettings["HostName"];
string strUser = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationUser"];
string strPWD = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationPWD"];
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(HostName + strFile);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(strUser, strPWD);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "attachment;filename=" + _AudiobookName + ".zip");
int read;
byte[] buffer = new byte[2 * 1024];
while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
Response.OutputStream.Write(buffer, 0, read);
Response.Flush();
}
responseStream.Close();
response.Close();
Response.Flush();
Response.End();
相關問題
- 1. Phpmailer在本地主機上運行,但不在服務器上
- 2. Open SDK無法在Web服務器上運行但在本地主機上運行時打開Excel文件
- 3. ftp_get在本地主機上運行,但不在生產服務器上運行
- 4. 無法在本地主機上運行Apache Tomcat服務器?
- 5. jQuery ajax無緩存在本地主機上運行,但不在服務器上
- 6. Windows服務在本地運行文件,但不在服務器上運行
- 7. Cookie在本地主機上運行良好,但無法在VPS上運行
- 8. jQuery自動載入腳本在本地主機上運行,但在服務器上運行時失敗
- 9. Flowplayer只能在本地主機上運行。無法在服務器上工作
- 10. 在一臺Web服務器上運行的PHP腳本,但無法在其他主Web服務器上運行
- 11. SSRS無法在遠程服務器上運行,但在本地運行良好
- 12. 能夠在本地主機上運行,但無法在部署到服務器時運行
- 13. 錯誤無法IIS服務器上加載資源(操作方法),但在本地主機上成功運行
- 14. 在asp.net中使用webresource,在本地主機上運行但在web服務器上運行的應用程序
- 15. Web RTC服務器僅在本地主機上運行
- 16. 如何在主機上運行本地服務器?
- 17. Ajax代碼在本地主機上運行xamp,但無法在主機上運行?
- 18. Flex事件在本地運行,但不在服務器上
- 19. Rails的服務器在運行,但是無法連接到本地主機:3000
- 20. 數據庫無法在服務器上訪問,但在本地主機上運行良好
- 21. PostgreSQL服務器的本地機器,但PSQL上運行無法連接
- 22. 在本地主機上運行的WordPress
- 23. 無法獲取aspx文件在服務器上運行,但它確實在本地運行
- 24. 動態生成的XML文件在服務器上不起作用,但在本地主機上運行良好
- 25. Twilio腳本在本地運行,但不在服務器上運行?
- 26. 使用Javascript訪問在本地主機上運行的服務
- 27. jpgraph在本地主機上運行,但不在網絡上
- 28. 無法連接到運行IIS的服務器上的本地主機
- 29. jTweetsAnywhere無法在活服務器上運行,只能在本地服務器上運行
- 30. 如何在Windows主機服務器上運行.php文件
你需要指定什麼是不工作?如果有什麼異常被拋出?你也似乎在第四行缺少strFile的變量類型。 – Maverik
我的代碼在本地系統上工作正常。但在發佈的網站上嚴重後,我的代碼無法正常工作。沒有例外沒有錯誤文件沒有下載 – Jitender
你有沒有嘗試過從服務器請求Fiddler的跟蹤細節?也許在原始響應流中有線索。服務器事件日誌也可能有一些線索。 – Maverik