几天来,我一直在寻找在 Azure 应用服务上运行的 AspNetCore Web api 项目的问题。
基本上我有一个非常小的 api 项目,在部署/启动时 - 我收到 500.30 ANCM 错误。足够隐秘 - 我从应用程序服务中提取事件日志,我发现:
<Data>Could not find inprocess request handler.
Captured output from invoking hostfxr: Error:
An assembly specified in the application dependencies manifest
(SampleApp.Api.deps.json) was not found:
package: 'System.Data.SqlClient', version: '4.6.1'
path: 'runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll'
</Data>
查看 SampleApp.deps.json - 果然我看到了:
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "4.5.0.1",
"fileVersion": "4.6.27618.1"
},
"runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.5.0.1",
"fileVersion": "4.6.27618.1"
}
},
我有一个类似(几乎相同)的项目,它在另一个应用程序服务上运行良好。如果运行
dotnet publish -c release /property:PublishWithAspNetCoreTargetManifest=true
(与我遇到问题的应用程序一起运行的相同发布命令)
我在 otherapp.deps.json 文件的运行时目标部分中根本没有看到此部分。
这是从哪里来的,我该如何摆脱它?
最佳答案
我有类似的情况
对我有用的是运行
dotnet publish cli-proj -r win-x64
.这将创建一个独立的包,它不依赖于任何已安装的运行时。然后我的部署从 bin/debug/netcoreapp3.1/win-x64/publish
获取所有文件并将它们推送到我的网络服务器。我确信安装的运行时应该提供这些文件,但它似乎不能很好地工作。这“修复”了我的问题。
关于asp.net-core - AspNetCore.deps.json 包括 runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57126312/