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 6x c-trib
    Oct 21, 2021 @ 14:33
    Paul Seal

    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
     Dotnet quickstart:
     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/ -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/'
     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:
        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=, 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/ line 12:    27 Aborted                 (core dumped) dotnet "MyProject.dll"
  • Rody 80 posts 280 karma points
    Oct 26, 2021 @ 07:11

    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

    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

    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:

    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="" />
      <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2" />
  • Mark Drake 133 posts 457 karma points c-trib
    Jan 09, 2022 @ 19:40
    Mark Drake

    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 6x c-trib
    Oct 26, 2021 @ 08:43
    Paul Seal

    Yes the ICU setting solved it for me too

  • milkman matty 31 posts 125 karma points
    Oct 29, 2021 @ 06:46
    milkman matty

    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

    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="" /> 
    <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

    Improvements have been made in this area for 9.4 via

    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

    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

    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 817 karma points c-trib
    Jun 13, 2022 @ 15:48
    Ambert van Unen

    Do you perhaps have quite some content in your site ?

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

    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="" /> <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="" /> <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="" />

Please Sign in or register to post replies

Write your reply to: