我不是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
我们的umbracoReservedPaths
文件中有web.config
,其中包含:
...
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/api,~/Content,~/Controllers,~/Views,~/Areas,~/radio,~/bundles,~/bundles/" />
...
正如我从googled链接中所理解的那样 - &#34;捆绑&#34;是一个基于内存的对象,在接受GET
请求后由.NET(自4.5版)应用程序创建。然后应用程序&#34;生成&#34;该对象包含一些JS / CSS / etc数据,将其放入内存中,必须通过路径~/bundles/scriptname
返回。即 - 它不是文件系统对象,因此 - 我无法直接检查服务器上的文件(并且无法在内存中找到它,因为这不是普通的Linux机箱,所有GNU&#39 ; s实用程序)。
我很困惑 - 从哪里开始调查,如何解决这个问题。或者至少 - 如何调试它(Azure&#39; s&#34;应用程序&#34;和#34; Web服务器&#34;日志 - 绝对无用的东西)。
任何提示赞赏。
答案 0 :(得分:0)
我们的问题是由于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%
...