Error loading hostpolicy.dll while deploying .NET Core console app to Azure WebJobs

18,081

Solution 1

I stopped seeing this error when I changed the contents of run.cmd from

dotnet MyWorker.dll

to

MyWorker.exe

Solution 2

This error could happen if the bitness of your application doesn't match the bitness of your App Service (e.g. publishing a 64-bit deployment to an App Service running in 32-bit mode).

To solve this I had to change the bitness to the correct setting in Azure:

enter image description here

To match the bitness of my publish profile in VS:

enter image description here

Share:
18,081
Admin
Author by

Admin

Updated on June 07, 2022

Comments

  • Admin
    Admin almost 2 years

    I have followed this tutorial to deploy a .NET Core console application to an Azure Web Service WebJob.

    My app is running locally without any issue (with dotnet 1.0.0-preview2-003131) but when I try to run it from Azure console I have the following error :

    Failed to load the dll from [D:\local\VirtualDirectory0\site\wwwroot\app_data\jobs\triggered\PopcornExportWebJob\hostpolicy.dll], HRESULT: 0x800700C1**

    An error occurred while loading required library hostpolicy.dll from [D:\local\VirtualDirectory0\site\wwwroot\app_data\jobs\triggered\PopcornExportWebJob]

    The version of Azure .Net is 1.0.0-rc4-004771 and the hostpolicy.dll file is the same than I use locally. In fact, when I download the zip of my deploy from Azure and when I run it locally, it is working fine. But it fails on Azure environment.

    Also, here is my project.json:

    {
          "publishOptions": {
            "include": [
              "run.cmd"
            ]
          },
          "buildOptions": {
            "emitEntryPoint": true,
            "copyToOutput": "appsettings.json"
          },
          "copyright": "bbougot",
          "dependencies": {
            "FubarCoder.RestSharp.Portable.Core": "4.0.7",
            "FubarCoder.RestSharp.Portable.HttpClient": "4.0.7",
            "Microsoft.ApplicationInsights.AspNetCore": "2.0.0",
            "Microsoft.Extensions.Configuration": "1.1.0",
            "Microsoft.Extensions.Configuration.Json": "1.1.0",
            "Microsoft.Extensions.DependencyInjection": "1.1.0",
            "Microsoft.Extensions.Logging": "1.1.0",
            "Microsoft.Extensions.Logging.Console": "1.1.0",
            "Microsoft.NETCore.App": "1.1.0",
            "MongoDB.Driver": "2.4.2",
            "StructureMap.Microsoft.DependencyInjection": "1.3.0"
          },
          "description": "Popcorn Api Exporter",
          "frameworks": {
            "netcoreapp1.1": {
              "imports": [
                "portable-net45+win8"
              ]
            }
          },
          "runtimes": {
            "win10-x64": {}
          },
          "scripts": {
            "postpublish": [ "7za.exe a -tzip PopcornExport.zip .\\bin\\Release\\PublishOutput\\*", 
                             ".\\WAWSDeploy.exe .\\PopcornExport.zip .\\popcornexport.PublishSettings /t app_data\\jobs\\triggered\\PopcornExportWebJob /v /d" ]
          },
          "title": "PopcornExport",
          "version": "1.0.0-*"
        }
    

    I had to add the node runtimes (win10-x64 otherwise the app can't run locally). But, the Azure Web Service is running on Windows Server 2012. May it be an issue?

    What did I miss?

  • Frank
    Frank about 4 years
    This led me to my fix also, though it was in my web.config: From: <aspNetCore processPath="dotnet" arguments=".\MyWorker.dll" ... /> To: <aspNetCore processPath=".\MyWorker.exe" ... />