【问题标题】:Browse to file upload fails on Azure website (small file)在 Azure 网站上浏览文件上传失败(小文件)
【发布时间】:2015-06-30 22:59:34
【问题描述】:

我可以在本地运行的网站上上传 .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);
    }
}

【问题讨论】:

    标签: asp.net azure azure-web-app-service


    【解决方案1】:

    您是说当您直接从浏览器浏览到 .xslx 文件时,即使该文件存在,您也会收到 404 错误???对于 404,子状态代码非常有助于确定返回 404 的原因,因此您可能需要检查站点的 IIS 日志以查看子状态并查看子状态代码是否对应于丢失的 mime 映射 (404.3)

    如果 404 的子状态代码是 3,那么您可以添加 mimemap 以进行 excel 扩展,如有关堆栈溢出的类似文章中所述Use SVG in Windows Azure Websites

    更多详情请参考http://blogs.iis.net/tomkmvp/troubleshooting-a-404

    【讨论】:

    • 谢谢普内特。我在使用 Azure 处理日志或备份方面还没有多少运气。它不像直接的 SQL Server/IIS 那样简单。我将不得不添加一些代码来验证每一步是否成功。由于相对文件路径,我发现读取 .xlsx 文件的代码可能会失败。这是代码:foreach(Workbook.Worksheets(fileLoc)中的var工作表){foreach(worksheet.Rows中的var行){
    【解决方案2】:

    您需要为.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

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2011-12-20
      • 2020-09-18
      • 2018-02-13
      相关资源
      最近更新 更多