2016-08-25 21 views
0

我不是IIS管理員,不是Umbraco用戶,而不是.NET開發人員,但是。Umbraco 6 - GET/bundles/bundlename 404

我們有一個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 /等數據,將其放入內存中,並且必須返回路徑~/bundles/scriptname。即 - 它不是一個文件系統對象,因此 - 我無法直接在服務器上檢查它的文件(並且無法在內存中找到它,因爲這不是所有GNU實用程序的普通Linux機器)。

我很困惑 - 從哪裏開始調查nad如何解決這個問題。或者至少 - 如何調試它(Azure的「應用程序」和「Web服務器」日誌 - 絕對無用的東西)。

任何提示讚賞。

回答

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% 
...