[英]An error occurred while loading required library hostpolicy.dll with Azure Function With Visual Studio 2022
[英]Error loading hostpolicy.dll while deploying .NET Core console app to Azure WebJobs
我已按照本教程將 .NET Core 控制台應用程序部署到 Azure Web 服務 WebJob。
我的應用程序在本地運行沒有任何問題(使用 dotnet 1.0.0-preview2-003131 )但是當我嘗試從 Azure 控制台運行它時出現以下錯誤:
無法從 [D:\\local\\VirtualDirectory0\\site\\wwwroot\\app_data\\jobs\\triggered\\PopcornExportWebJob\\hostpolicy.dll] 加載 dll,HRESULT:0x800700C1
從 [D:\\local\\VirtualDirectory0\\site\\wwwroot\\app_data\\jobs\\triggered\\PopcornExportWebJob] 加載所需的庫 hostpolicy.dll 時發生錯誤
Azure dotnet的版本是1.0.0-rc4-004771 ,hostpolicy.dll文件和我本地用的一樣。 事實上,當我從 Azure 下載部署的 zip 文件並在本地運行時,它運行良好。 但它在 Azure 環境中失敗。
另外,這是我的 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-*"
}
我必須添加節點運行時(win10-x64,否則應用程序無法在本地運行)。 但是,Azure Web 服務運行在 Windows Server 2012 上。這可能是個問題嗎?
我錯過了什么?
好吧,我已經想通了。
如果要將 dotnet 核心應用程序部署到 Azure Web 服務,並且在 32 位平台模式下運行應用程序,請包含運行時“ win7-x86 ”。
對於 Visual Studio 2015 解決方案,您的 project.json 應包括:
"runtimes": {
"win10-x64": {},
"win7-x86": {} //IMPORTANT FOR AZURE DEPLOY
},
或者,如果您已經遷移到 Visual Studio 2017,則您的 .csproj 應將其包含在 PropertyGroup 中:
<RuntimeIdentifiers>win10-x64;win7-x86</RuntimeIdentifiers>
此外,您的發布配置文件應包含相同的內容:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<TargetFramework>netcoreapp1.1</TargetFramework>
<PublishDir>bin\Release\PublishOutput</PublishDir>
<RuntimeIdentifier>win7-x86</RuntimeIdentifier> // IMPORTANT
</PropertyGroup>
</Project>
當我將 run.cmd 的內容從
dotnet MyWorker.dll
到
MyWorker.exe
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.