首页新闻找找看学习计划

http下载文件中有html代码(iis8.5)

0
[已解决问题] 解决于 2018-03-09 09:15

一直使用正常的站点,今天开始所有下载文件的文件末尾都被追加了一段HTML代码

具体实现代码如下:

下载文件的服务器端代码

FileStream  dFileSM = new FileStream(HttpUtility.UrlDecode(fileName, System.Text.Encoding.UTF8), FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
 BinaryReader dFileBR = new BinaryReader(dFileSM);
 Response.Charset = "utf-8";
 Response.AddHeader("connection", "keep-alive");
 Response.ContentType = "application/octet-stream";
 Response.AddHeader("content-disposition", "attachment;filename=20180308144837140.txt" );
 Response.AddHeader("content-length", dFileSM.Length.ToString());
 if (dFileSM.Length != 0)
 {
Response.BinaryWrite(dFileBR.ReadBytes((
int)dFileSM.Length)); } dFileBR.Close(); dFileSM.Close(); HttpContext.Current.ApplicationInstance.CompleteRequest();

 下面是下载后的文件,标红的是多出来的内容

正常文件内容:


-------------------------- 以下是下载到客户端后多出来的内容 (不含此行)----------------

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
	</title></head>
<body>
    <form method="post" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="CyzEz0PopgI6leLEh/XgQbULllbFOMyRQsxc6nJZLlYFf6ZV2WtrYKziC8LOUoWGG2CWAJB2UPXEM/k8rUg60gJI4+0Sm3UXR6EXmTbL0pk=" />
</div>

<div class="aspNetHidden">

	<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="E0C68A58" />
</div>
    <div>
    </div>
    </form>
</body>
</html>
问题补充:

将 HttpContext.Current.ApplicationInstance.CompleteRequest();

替换为 Response.End();

可以解决问题,但不知原因是什么

OS没有更新过,Framework没有更新过,程序代码没改过,突然输出的结果就变了

菜鸟999的主页 菜鸟999 | 初学一级 | 园豆:149
提问于:2018-03-08 15:25
< >
分享
最佳答案
0

好好看看Render函数,联系上下文,就明白了。

奖励园豆:5
花飘水流兮 | 专家六级 |园豆:10574 | 2018-03-08 21:26
其他回答(1)
0

HttpContext.Current.ApplicationInstance.CompleteRequest();方法前加上Response.Flush();即可解决此问题

但疑问是什么原因导致此现象的发生,原先同样的代码同样的环境不会出现这种情况

菜鸟999 | 园豆:149 (初学一级) | 2018-03-09 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册