【问题标题】:Umbraco 6 - GET /bundles/bundlename 404Umbraco 6 - 获取 /bundles/bundlename 404
【发布时间】:2016-08-25 10:51:46
【问题描述】:

我不是 IIS 管理员,不是 Umbraco 用户,也不是 .NET 开发人员,但是。

我们有一个 Umbraco 应用程序,它是从另一个机构迁移到我们的。它适用于 Azure、WebApp。

问题是:开发人员团队添加了新的语言环境 - 但我们无法使其在我们的环境中工作(但它在开发人员的工作站上本地工作)。此外 - 所有旧语言环境 - 都可以正常工作(在下面的示例中为 FR)。

我们已将语言环境包添加到 ./App_Start/BundleConfig.cs

...
var fr_fr = new ScriptBundle("~/bundles/script_fr_fr");
var pl_pl = new ScriptBundle("~/bundles/script_pl_pl");
...
SetCommonIncludes(pl_pl);
pl_pl.Include(
     "~/client/scripts/ui/dialog/AgeGateDialog_pl_pl.js"
);
...
bundles.Add(fr_fr);
bundles.Add(pl_pl);
bundles.Add(standAloneiFramePage);
...

但是在应用程序构建(使用msbuild)和部署(使用msdeploy)之后 - fr_fr 章节有效,而 pl_pl - 给出 404 错误:

> Request
> URL:http://applicationstaging2.azurewebsites.net/bundles/script_pl_pl
> Request Method:GET Status Code:404 Not Found

我们的web.config 文件中有umbracoReservedPaths

...
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/api,~/Content,~/Controllers,~/Views,~/Areas,~/radio,~/bundles,~/bundles/" />
...

据我从谷歌链接了解 - “捆绑”是一个基于内存的对象,由 .NET(自 4.5 起)应用程序在接受GET 请求后创建。然后应用程序“生成”这个对象,其中包括一些 JS/CSS/etc 数据,将其放入内存中,并且必须通过路径 ~/bundles/scriptname 返回。 IE。 - 它不是文件系统对象,因此 - 我无法直接在服务器上检查它的文件(也无法在内存中找到它,因为这不是具有所有 GNU 实用程序的普通 Linux 机器)。

我很困惑 - 从哪里开始调查以及如何解决这个问题。或者至少 - 如何调试它(Azure 的“应用程序”和“Web 服务器”日志 - 绝对没用的东西)。

感谢任何提示。

【问题讨论】:

    标签: asp.net azure msbuild umbraco


    【解决方案1】:

    我们的问题是由于 Bin 目录中的 dll 文件在构建期间未更新。

    我们的build.bat 脚本是:

    ...
    echo [%ME%] Running NuGet restore
    
    %NUGET% restore %SOLUTION%
    if %errorlevel% neq 0 exit /b %errorlevel%
    
    echo [%ME%] Running MSBuild
    
    %MSBUILD% %SOLUTION%
    if %errorlevel% neq 0 exit /b %errorlevel%
    ...
    

    /t:Clean,Build 添加到%MSBUILD% %SOLUTION% 行的末尾修复了问题:

    ...
    %MSBUILD% %SOLUTION% /t:Clean,Build
    if %errorlevel% neq 0 exit /b %errorlevel%
    ...
    

    我进行的第二次更新 - 在deploy.bat 脚​​本中,添加了-verb:delete

    ...
    echo [%ME%] Cleaning up application
    %MSDEPLOY% -enableRule:AppOffline -verb:delete -dest:contentPath='%CONTENTPATH%',ComputerName="%COMPUTERNAME%/msdeploy.axd?site=%SITE%",UserName='%USERNAME%',Password='%PASSWORD%',AuthType="Basic"
    ...
    

    在准确部署之前:

    ...
    echo [%ME%] Deploying new application
    %MSDEPLOY% -enableRule:AppOffline -verb:sync -source:contentPath="%cd%\server\JaegermeisterPlatform_Soln\%SITENAME%" -dest:contentPath='%CONTENTPATH%',ComputerName="%COMPUTERNAME%/msdeploy.axd?site=%SITE%",UserName='%USERNAME%',Password='%PASSWORD%',AuthType="Basic" -setParamFile=%PROPERTYFILE%
    ...
    

    【讨论】:

      猜你喜欢
      • 2020-01-26
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多