asp.net发布网站成功,但是输出文件夹里没有文件(在线等)...急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net发布网站成功,但是输出文件夹里没有文件(在线等)...急相关的知识,希望对你有一定的参考价值。

------ 已启动生成: 项目: G:\美购先锋\MGXF2\, 配置: Debug .NET ------
正在预编译网站

正在生成目录“/MGXF2/App_Code/”。
正在生成目录“/MGXF2/Admin/Ad/”。
正在生成目录“/MGXF2/Admin/”。
正在生成目录“/MGXF2/Admin/Edit/dialog/”。
正在生成目录“/MGXF2/Admin/Edit/js/”。
正在生成目录“/MGXF2/Admin/Edit/style/”。
正在生成目录“/MGXF2/Admin/Link/”。
正在生成目录“/MGXF2/Admin/Matches/”。
正在生成目录“/MGXF2/Admin/Messages/”。
正在生成目录“/MGXF2/Admin/news/”。
正在生成目录“/MGXF2/Admin/Orderform/”。
正在生成目录“/MGXF2/Admin/QQ/”。
正在生成目录“/MGXF2/Admin/Statistics/”。
正在生成目录“/MGXF2/Admin/WebInfo/”。
正在生成目录“/MGXF2/Admin/YX_Product/”。
正在生成目录“/MGXF2/Admin/YX_SitModel/”。
正在生成目录“/MGXF2/Admin/YX_user/”。
正在生成目录“/MGXF2/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer3/JS/”。
正在生成目录“/MGXF2/Include/Ad/”。
正在生成目录“/MGXF2/Include/”。
正在生成目录“/MGXF2/NewsPage/”。
正在生成目录“/MGXF2/Skin/Skin1/images/”。
正在生成目录“/MGXF2/webedit/dialog/”。
正在生成目录“/MGXF2/webedit/js/”。
正在生成目录“/MGXF2/webedit/language/”。
正在生成目录“/MGXF2/webedit/style/”。
正在生成目录“/MGXF2/”。
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_b25g5wik.0.cs(183,57): 警告 CS0436: “c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_b25g5wik.0.cs”中的类型“Admin_Orderform_YX_Abipay”与“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_l4d7fe6f.dll”中的导入类型“Admin_Orderform_YX_Abipay”冲突。将使用“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_b25g5wik.0.cs”中的类型。
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_6iteciav.2.cs(170,59): 警告 CS0436: “c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_6iteciav.3.cs”中的类型“Admin_Orderform_YX_Abipay”与“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_l4d7fe6f.dll”中的导入类型“Admin_Orderform_YX_Abipay”冲突。将使用“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mgxf2\3b3fdd32\f6bfb9b2\App_Web_6iteciav.3.cs”中的类型。
预编译完成
------ 发布已启动: 项目: G:\美购先锋\MGXF2\, 配置: Debug .NET ------
========== 生成: 1 成功或最新,0 失败,0 被跳过 ==========
========== 发布: 1 个成功,0 个失败,0 个跳过 ==========,0 个跳过 ==========

以上我网站编译的结果.但是在我发布的文件夹里没有文件.多个电脑测试结果都一样.请高手解答...不会的不要占楼..急
浪费我的150.。。我知道是什么问题。。。aspx文件里标签错误。。可以生成。。但是最后编译通过后。。不能生成文件。。。

我的是vs 2012 ,用Realeas-Any-Cpu 提示发布成功,但是路径下是空的.

参考技术A 对,应该是你的发布路径的问题,我刚才发布了一个是可以的 参考技术B 在你的IIS那里可以看见撒??
发布的是自己设置的路径哦!!
参考技术C 发布的文件夹不是你项目文件夹。发布前会让你设置路径的。 参考技术D 发布路径错了吧

[ASP.NET][C#]下载文件时中文文件名出现乱码

负责的网站在ASP.NET网页有一段下载Word/Excel文件的程序,最近使用者要求的文件名称内含繁体中文字,
同事用chrome/firefox浏览器测试下载都很正常显示,但用IE(版本11)开启时,却出现了乱码。


1.准备一个中文文件名的文件

技术图片

ASP.NET MVC

2.在HomeControler中加入下载程序Download

public ActionResult Download()

    //文件位置
    string filepath = @"E:testWebApplication1中文文件名.docx";
    //文件名称
    string filename = Path.GetFileName(filepath);
    //读成串流
    Stream sfilestream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
    //回传出文件
    return File(sfilestream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", filename);

3.执行下载

文件名正常显示中文!

技术图片

换上ASP.NET Web Form

4.先增一支Download.aspx

技术图片

在Page load加入下载程序

protected void Page_Load(object sender, EventArgs e)

    string filepath = @"E:testWebApplication1中文文件名.docx";
    string fileName = Path.GetFileName(filepath);

    HttpContext.Current.Response.AppendHeader("content-disposition", "attachment;filename=" + fileName);
    HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    HttpContext.Current.Response.WriteFile(filepath);
    HttpContext.Current.Response.End();

5.执行下载

文件名不正常

技术图片

找到两个解法

  1. 将中文文件名用HttpUtility.UrlEncode以UTF8编码系统进行QP编码。
  2. HeaderEncoding编码改为BIG5

(1)将中文文件名用HttpUtility.UrlEncode以UTF8编码系统进行QP编码

string fileName = HttpUtility.UrlEncode(Path.GetFileName(filepath));
//string fileName = Path.GetFileName(filepath);


HttpUtility.UrlEncode默认会以UTF8的编码系统进行QP(Quoted-Printable)编码,可以直接显示的7 Bit符(ASCII)就不用特别转换。

  • 编码前:.docx
  • 编码后:%e4%b8%ad%e6%96%87%e6%aa%94%e5%90%8d.docx

除了标准ASCII,其他都会用UTF8进行编码送到前端浏览器。
https://mothereff.in/utf-8

文件名可以正常显示中文了!

技术图片

(2)HeaderEncoding编码改为BIG5

增加一行设定HeaderEncoding的程序,因为服务器都是繁体中文,默认Encoding.Default = BIG5

HttpContext.Current.Response.HeaderEncoding = System.Text.Encoding.Default;

默认HttpContext.Current.Response.HeaderEncoding是UTF8,将编码改为BIG5也可以解决中文文件名问题

技术图片

都已经是UTF8编码的网页了,为什么还得要将HeaderEncoding编码改为繁体中文操作系统的BIG5才能解决???
进一步搜寻到保哥、黑暗大文章,看起来似乎与浏览器支持到哪一种Content-Disposition标准有关(RFC2045、2183、5987)。
好,先到此打住,来看奥运了!以后有时间再继续深入调查。

技术图片


小结:

  • 因为系统被要求要支持多国语系,暂时我们选择第一种解法,以后出现蝌蚪文还是火星文就不怕了。
  • ASP.NET MVC已经解决了文件名有中文码问题了。

参考:

HttpResponse 类

HttpUtility.UrlEncode

HttpResponse.HeaderEncoding

KB-Open And Download File In Chinese Filename

ASP.NET 如何设定强制下载文件并正确处理中文文件名的问题

How to encode the filename parameter of Content-Disposition header in HTTP?

原文:大专栏  [ASP.NET][C#]下载文件时中文文件名出现乱码


以上是关于asp.net发布网站成功,但是输出文件夹里没有文件(在线等)...急的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET编译成功后,为啥有些功能不会执行?麻烦高手解答!

ASP.NET 图片上传为啥传上出去了 但是显示不出来 我用的ACCESS数据库 图片的路劲已经传到了数据库里,

[ASP.NET][C#]下载文件时中文文件名出现乱码

Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量

IIS 基于所提供的凭据,您没有权限查看此目录或网页.

asp.net如何避免把上传的文件覆盖掉