Error loading hostpolicy.dll while deploying .NET Core console app to Azure WebJobs
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:
To match the bitness of my publish profile in VS:
Admin
Updated on June 07, 2022Comments
-
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 about 4 yearsThis 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" ... />