首页 > 解决方案 > 将文件从 asp.net Web 表单项目上传到 IIS 服务器时,原始文件位于临时文件夹中错误

问题描述

我正在尝试将一些具有不同扩展名的文件(如 .png、.jpg、.txt、.pdf 等)上传到 IIS 服务器。但是我的所有文件都是按照给定路径创建的,但它们都是 1kb 大小,当你打开它们时会说

原始文件位于临时文件夹中。文件完整路径:C:\Temp\xxxxxxxxx.tmp

从源代码运行时,我的代码在 localhost 上运行良好,并且 Web 服务器目录中没有像消息中提到的那样的文件夹。

我的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUploadTest.aspx.cs" Inherits="FileUploadTest" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
                <asp:FileUpload ID="FileUpload1"  Multiple="Multiple" name="okantestfileupload" runat="server" />
                <asp:Button ID="btnFileUpload" OnClick="btnFileUpload_Clickk" runat="server" Text="ekle" Width="150px" CssClass="CommandButton" />
               <asp:ListBox runat="server" ID="ListBoxForInfo" Width="400" CssClass="NormaltextBox" ></asp:ListBox>
        </div>
    </form>
</body>
</html>

.cs 部分

protected void btnFileUpload_Clickk(object sender, EventArgs e)
    {
        string strFolder = @"D:\TEST\";
        HttpFileCollection uploadedFiles = Request.Files;

        for (int i = 0; i < uploadedFiles.Count; i++)
        {
            HttpPostedFile uploadedFile = Request.Files.Get(i);


            var uFileSize = uploadedFile.ContentLength;
            var uFileName = uploadedFile.FileName;
            var uContentType = uploadedFile.ContentType;
            string uExtension =
               System.IO.Path.GetExtension(uploadedFile.FileName);

            uploadedFile.SaveAs(strFolder + uFileName);
            ListBoxForInfo.Items.Insert(0, uFileName + "." + uContentType + " Boyut: (" + uFileSize + " bytes)  yüklendi.");


        }
    }

我应该怎么做才能解决这个问题?我已经尝试了一些解决方案,包括考虑使用防病毒程序。

问候

标签: c#asp.netwebforms

解决方案


问题是相关应用程序池的托管管道模式配置。应用程序在 v2.0 .NET CLR 版本上运行,但项目是在 .NET 3.5 上构建的。所以在不了解详细机制的情况下,将 Managed PipeLine Mode从 Classic 更改为Integrated无意中解决了问题。项目中使用的其他外部组件可能出现不兼容问题。目前正在执行全周期测试,但上传问题已修复


推荐阅读