Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Paul Seal 524 posts 2889 karma points MVP 7x c-trib
    Oct 21, 2021 @ 14:33
    Paul Seal
    3

    Unable to deploy v9 site to linux web app on Azure

    Hi, we are trying to deploy our v9 umbraco 9 site to a linux web app on Azure and we are getting an error.

    Has anyone else had this error, know how to solve it? Also have you managed to successfully publish to an azure linux web app with an Umbraco 9 site.

    Here are the logs:

       _____                               
       /  _  \ __________ _________   ____  
      /  /_\  \___   /  |  \_  __ \_/ __ \ 
     /    |    \/    /|  |  /|  | \/\  ___/ 
     \____|__  /_____ \____/ |__|    \___  >
             \/      \/                  \/ 
     A P P   S E R V I C E   O N   L I N U X
    
     Documentation: http://aka.ms/webapp-linux
     Dotnet quickstart: https://aka.ms/dotnet-qs
     ASP .NETCore Version: 5.0.6
     Note: Any data outside '/home' is not persisted
     Running oryx create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -defaultAppFilePath /defaulthome/hostingstart/hostingstart.dll     -bindPort 8080 -userStartupCommand '' 
     Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
     Could not find operation ID in manifest. Generating an operation id...
     Build Operation ID: 23c256d6-85e0-4867-85f8-6e753b4a86c2
    
     Agent extension 
     Before if loop >> DotNet Runtime Writing output script to '/opt/startup/startup.sh'
     Trying to find the startup DLL name...
     Found the startup D name: MyProject.dll
     Running the command: dotnet "MyProject.dll"
     Process terminated. Failed to load app-local ICU: libicudata.so.68.2
        at System.Environment.FailFast(System.String)
        at System.Globalization.GlobalizationMode.LoadLibrary(System.String, Boolean)
        at System.Globalization.GlobalizationMode.LoadAppLocalIcuCore(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>)
        at System.Globalization.GlobalizationMode.LoadAppLocalIcu(System.String)
        at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
        at System.Globalization.GlobalizationMode..cctor()
        at System.Globalization.CultureData.CreateCultureWithInvariantData()
        at System.Globalization.CultureData.get_Invariant()
        at System.Globalization.CultureInfo..cctor()
        at System.Globalization.CultureInfo.get_CachedCulturesByName()
        at System.Globalization.CultureInfo.GetCultureInfo(System.String)
        at System.Reflection.RuntimeAssembly.GetLocale()
        at System.Reflection.RuntimeAssembly.GetName(Boolean)
        at System.Reflection.Assembly.GetName()
        at Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseStartup(Microsoft.AspNetCore.Hosting.IWebHostBuilder, System.Type)
        at Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseStartup[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.AspNetCore.Hosting.IWebHostBuilder)
        at MyProject.Program+<>c.<CreateHostBuilder>b__1_1(Microsoft.AspNetCore.Hosting.IWebHostBuilder)
        at Microsoft.Extensions.Hosting.GenericHostBuilderExtensions+<>c__DisplayClass0_0.<ConfigureWebHostDefaults>b__0(Microsoft.AspNetCore.Hosting.IWebHostBuilder)
        at Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions.ConfigureWebHost(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>, System.Action`1<Microsoft.Extensions.Hosting.WebHostBuilderOptions>)
        at Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions.ConfigureWebHost(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>)
        at Microsoft.Extensions.Hosting.GenericHostBuilderExtensions.ConfigureWebHostDefaults(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>)
        at MyProject.Program.CreateHostBuilder(System.String[])
        at MyProject.Program.Main(System.String[])
     /opt/startup/startup.sh: line 12:    27 Aborted                 (core dumped) dotnet "MyProject.dll"
    
  • Rody 80 posts 280 karma points
    Oct 26, 2021 @ 07:11
    Rody
    1

    We have exactly the same issue. Did you manage to get it running Paul?

  • David Walker 19 posts 90 karma points
    Oct 26, 2021 @ 08:19
    David Walker
    0

    Not specifically this issue - but was looking for documentation to simply deploy to any Linux machine. Anyone seen that in the V9 docs yet?

  • Rody 80 posts 280 karma points
    Oct 26, 2021 @ 08:29
    Rody
    103

    I finally managed to find out what the problem was. We started out with an earlier version of the Umbraco Project setup file. Which did not include the specific Condition for the ICU packages to only load on Windows environments:

    https://github.com/umbraco/Umbraco-CMS/blob/79fdb9a876a822f8662679711f5f801f3159ff42/build/templates/UmbracoProject/UmbracoProject.csproj

    So we ended up updating our csproj file for the 2 ICU dependencies with a OS condition.

    <ItemGroup Condition="'$(OS)' == 'Windows_NT'">
      <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" />
      <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2" />
    </ItemGroup>
    
  • Mark Drake 134 posts 458 karma points c-trib
    Jan 09, 2022 @ 19:40
    Mark Drake
    0

    Thank you! Really got me out of a bind last night. This worked perfectly and I was able to get the site back online.

  • Paul Seal 524 posts 2889 karma points MVP 7x c-trib
    Oct 26, 2021 @ 08:43
    Paul Seal
    0

    Yes the ICU setting solved it for me too

  • Matty 34 posts 148 karma points
    Oct 29, 2021 @ 06:46
    Matty
    0

    I'm getting the exact same issue but the above solution did not fix it for me.

    For clarity, this is brand new umbraco 9 project. I literally added nothing custom. Steps I took:

    1. Create new project via the "Umbraco Project (Umbraco HQ)" project template.
    2. Change the csproj like above solution suggests.
    3. Publish and deploy (to Ubuntu 20.04).
    4. dotnet MyDll.dll and get above error.

    Wondering if maybe the project template is also missing other csproj stuff. I'll try replacing the entire thing with the github one, can't be any worse than it currently is lol.

  • Nathanuel 5 posts 85 karma points
    Dec 24, 2021 @ 02:29
    Nathanuel
    0

    None of these suggestions were working for me to get things running on Linux Web Apps.

    What worked for me in the end was deleting the following entries from the project file.

    <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> 
    <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2" />
    

    Seems like the condition doesn't seem to be working for whatever reason. I'm not sure what the consequences are for this, but my site seems to run now.

  • Paul Johnson 18 posts 109 karma points
    Feb 10, 2022 @ 09:55
    Paul Johnson
    0

    Improvements have been made in this area for 9.4 via https://github.com/umbraco/Umbraco-CMS/pull/11961

    As of this change app local icu will always be used unless building for MacOS

  • Paul Johnson 18 posts 109 karma points
    Mar 11, 2022 @ 15:14
    Paul Johnson
    0

    The app local icu setup is now working on linux (including when building from windows) as of 9.4 rc

    enter image description here

  • Matthew 13 posts 88 karma points
    Mar 29, 2022 @ 14:36
    Matthew
    0

    I'm running into the same issue running the latest 9.4.1. I updated my csproj with the config introduced in 9.4 but am still unable to get my site deployed to an Azure Linux Web App. It doesn't seem to crash as it was before on previous versions but has no further logs after the dotnet "Project.dll" runs and server is inaccessible.

    EDIT It does eventually come up, but takes nearly 30 minutes. Has anyone else run into this?

  • Ambert van Unen 175 posts 819 karma points c-trib
    Jun 13, 2022 @ 15:48
    Ambert van Unen
    0

    Do you perhaps have quite some content in your site ?

  • Mahmoud Hanafy 1 post 74 karma points
    Oct 23, 2022 @ 09:02
    Mahmoud Hanafy
    3

    I had a similar problem deploying to Azure Linux app service, using Umbraco 10.3.1. The exact error about Failed to loal app-local ICU

    The reply about about removing the reference from the project file prompted me to align the versions; I had something like this

    <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2" />

    Notice the slight difference between the package reference and the RuntimeHostConfiguration; probably due to upgrading the the nuget package without updating the file.

    after aligning the versions, things started to work fine

    <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" />

  • Ryan Wilson 1 post 71 karma points
    Jun 04, 2024 @ 08:58
    Ryan Wilson
    0

    Exact same situation for me on a upgrade from V11 to V13. I updated the ICU and I got this unhelpful error.

    I actually found the issue through checking the debug .exe - as I wanted to see and make sure it was being generated. I ran the exe on a whim and it gave me an actual exception I can work with mentioning the old ICU version. VS was less helpful as it doesn't seem to know this is the cause.

  • Biagio Paruolo 1619 posts 1912 karma points c-trib
    Aug 02, 2024 @ 15:31
    Biagio Paruolo
    0

    U13. I've this by default:

      <ItemGroup>
        <!-- Opt-in to app-local ICU to ensure consistent globalization APIs across different platforms -->
        <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" />
        <PackageReference Include="Umbraco.Cms.Core" Version="13.1.1" />
        <PackageReference Include="Umbraco.Cms.Persistence.EFCore" Version="13.1.1" />
        <PackageReference Include="Umbraco.Cms.Web.Website" Version="13.1.1" />
        <PackageReference Include="Umbraco.Community.Contentment" Version="4.6.1" />
        <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2.0.9"
          Condition="$(RuntimeIdentifier.StartsWith('linux')) or $(RuntimeIdentifier.StartsWith('win')) or ('$(RuntimeIdentifier)' == '' and !$([MSBuild]::IsOSPlatform('osx')))" />
      </ItemGroup>
    

    I still have the error on Linux at runtime.

  • Simone Chiaretta 135 posts 542 karma points c-trib
    1 week ago
    Simone Chiaretta
    0

    Stupid question, but since it just happened to me I might ask

    are you building your Umbraco project in platform independent or by specifying RID? if you want to run on Linux you need to set it to -r linux-x64. I spend a full day trying to figure out why I got the error I saw the build in the build plan was using -r win-x64

Please Sign in or register to post replies

Write your reply to:

Draft