首页 > 解决方案 > 从远程 IIS 服务器上传时,上传的文件没有内容

问题描述

我正在尝试使用 ASP.NET Core 3.0 将文件上传到 Google Drive,这是我上传文件的代码。

GData.File fileMetadata = new GData.File()
{
    Id = null,
    Name = Path.GetFileName(path),
    MimeType = contentType
};

using (Stream stream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
    FilesResource.CreateMediaUpload request = service.Files.Create(fileMetadata, stream, contentType);
    request.Fields = "id";
    request.Body = fileMetadata;

    request.ProgressChanged += (uploadProgress) =>
    {
        Debug.WriteLine($"{uploadProgress.Status} {uploadProgress.BytesSent}");
    };

    request.ResponseReceived += (obj) =>
    {
        Debug.WriteLine($"File uploaded successfully  {obj.Id}");
    };

    request.Upload();
}

我面临的问题是,当我在本地IIS 服务器上运行此方法时,它可以正常工作。在远程IIS 服务器上,此方法成功运行,但上传的文件中没有任何内容并显示0 大小

按照此链接进行测试: https ://oauthdemo.coredata.ca/

标签: c#iisgoogle-drive-apiasp.net-core-3.0

解决方案


经过一整天的挣扎,我终于解决了这个问题。这是由于临时文件夹。我FileStream用来在临时文件夹中创建新文件。这是一个 A-Sync 调用,因此FileStream无法创建该文件。


推荐阅读