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