我可以在本地运行的网站上传一个.xlsx文件,但是在发布到Azure之后就是404。 ASP.Net/webforms; C#;
“您要查找的资源已被删除,名称已更改,或暂时无法使用。”
任何想法都会受到赞赏。
if (!this.FileUpload1.FileName.Equals("ActionFile.xlsx"))
{
this.tbxAdminStatus.Text = "Missing input file ActionFile.xlsx";
return;
}
else
{
// Upload file
fileLoc = Server.MapPath("~/Upload/" + his.FileUpload1.PostedFile.FileName);
try
{
this.FileUpload1.PostedFile.SaveAs(fileLoc);
this.tbxAdminStatus.Text = "File ActionFile.xlsx Uploaded";
}
catch (Exception ex)
{
Response.Write("Error: " + ex.Message);
}
}
答案 0 :(得分:0)
您是说当您直接从浏览器浏览.xslx文件时,即使该文件存在,您也会收到404错误?对于404,子状态代码确实有助于确定404返回的原因,因此您可能需要检查站点的IIS日志以查看子状态,并查看子状态代码是否与缺少的mime映射相对应(404.3)
如果404的子代码是3,那么你可以为excel扩展添加mimemap,如关于堆栈溢出Use SVG in Windows Azure Websites的类似文章中所述
有关详细信息,请参阅http://blogs.iis.net/tomkmvp/troubleshooting-a-404
答案 1 :(得分:0)
您需要为.xslx
文件定义MimeType,让网络服务器通过http为其提供服务。
在web.config
添加这些行
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".xlxs" />
<mimeMap fileExtension=".xlxs" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
</staticContent>
</system.webServer>
</configuration>
MimeType值的来源:https://stackoverflow.com/a/4212908/3234163