【问题标题】:Request Timeout Umbraco Azure via Ajax通过 Ajax 请求超时 Umbraco Azure
【发布时间】:2020-06-17 15:10:57
【问题描述】:

我有一个脚本可以在 Umbraco 的媒体页面中创建一个条目。这个想法是我通过 FTP 将视频上传到服务器中。现在我有一个按钮,我将单击该按钮依次调用 API。此 API 将运行一个脚本,该脚本将在创建媒体条目后以编程方式创建它将删除该文件。使用这种方法,即使文件很大,我也可以在 Umbraco 中创建媒体。现在,当文件非常大时,我遇到了超时问题。有什么解决方法吗?我正在为我的应用程序使用 Azure Web App Service。如何解决这个超时问题?

下面是我的代码

string[] filePaths = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + "uploads");

foreach (string filePath in filePaths)
{

    using (Stream stream = System.IO.File.OpenRead(filePath))
    {
        string filename = Path.GetFileName(filePath);
        string mediaType = Constants.Conventions.MediaTypes.File;
        string ext = Path.GetExtension(filename);

        if (ext == ".jpg" || ext== ".png" || ext == ".gif" || ext == ".jpeg") {
            mediaType = Constants.Conventions.MediaTypes.Image;
        }

        IMedia media = Services.MediaService.CreateMedia(filename, Constants.System.Root, mediaType);
        media.SetValue("umbracoFile", filename, stream);
        Services.MediaService.Save(media);
        media = null;
    }

    System.IO.File.Delete(filePath);
}

【问题讨论】:

  • <system.web> <compilation debug="true" targetFramework="4.5.2" /> <!--<httpRuntime targetFramework="4.5.2" />--> <httpRuntime targetFramework="4.5.2" executionTimeout="90" maxRequestLength="2097151" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/> </system.web>
  • <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2072576000"/> </requestFiltering> </security> </system.webServer>
  • 可以在web.config中配置。我的建议设置文件的最大大小是2G,你可以设置更高。期待您的测试结果。

标签: c# .net azure umbraco umbraco7


【解决方案1】:

如果您使用的是 azure,我会 configure Umbraco to use blobstorage 然后上传到 blobstorage 而不是区域设置应用程序实例。随着时间的推移,Azure Web 实例的内存使用受到限制。因此,无论如何,将大文件上传到您的 azure Web 应用程序可能不是一个好主意。

第二个简单的解决方案,如果它只发生一次:在 umbraco 中上传一个小文件,然后用 FTP 覆盖磁盘上的文件。

第三种解决方案:考虑 youtube 或 vimeo 等服务,因为它们处理所有不同浏览器和带宽的所有编码。

如果您考虑允许在 web.config 中上传大文件。 不要三思而后行更改maxAllowedContentLength,因为这会增加潜在的 DoS 攻击。如果它真的是唯一的解决方案,只允许在必要的路径(例如你的 /umbraco/ 文件夹)上这样做

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2016-11-23
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多