我有两个项目都是.NET核心。定义模式,模型,命令,查询等的基础结构项目,以及由端点/控制器组成的API,用于处理数据。整个安装程序驻留在Azure上,数据库是Azure SQL。
该系统用于分析,因此整个设置基于只读API,而不是。但是,我显然需要将数据插入数据库。数据来自我的环境中的软件,所以我的想法是创建一个WebJob,它将在Azure队列上接收有效负载,使用NewtonSoft JSON填充我的模型并将其插入数据库。
如果我创建了一个普通的Azure WebJob,它将使用与.NET Core不兼容的.NET版本,因此我将我的项目设置为here。为了设置我的Web作业,我需要对其进行配置:
public static void Main(string[] args)
{
var config = new JobHostConfiguration
{
DashboardConnectionString = "",
StorageConnectionString = ""
};
var host = new JobHost(config);
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
为了使用RunAndBlock();以及我需要引用mscorlib的配置,我在我的project.json中执行:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.Azure.WebJobs": "1.1.2",
"Microsoft.Azure.WebJobs.Core": "1.1.2",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.3"
},
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"Microsoft.WindowsAzure.ConfigurationManager": "3.2.3",
"WindowsAzure.Storage": "8.0.1"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dnxcore50",
"net451"
]
}
},
"publishOptions": {
"include": [
"run.cmd"
]
},
"runtimes": {
"win10-x64": {}
}
}
关于"Microsoft.NETCore.Portable.Compatibility"
包阅读here,它说:
因此,使用此软件包时可能会遇到类似
的错误错误CS0012:类型“WebRequest”在程序集中定义 没有引用。您必须添加对程序集的引用 'System.Net.Requests,Version = 0.0.0.0,Culture = neutral, 公钥= b03f5f7f11d50a3a”。
这正是我得到的,
Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference.
但是,我不完全确定如何解决这个问题。我的依赖foo不是超级强大,我不确定我是否能够让Azure Queue存储+ webjobs与.NET核心很好地搭配
那么如果它可以修复,我该如何解决呢?
答案 0 :(得分:1)
根据您的方案,我尝试为我的WebJob构建NETCore控制台应用程序,我可能会遇到与您提供的相同的错误。然后我在NETCore中找到了一些关于WebJob SDK的类似issue和issue,并且David Ebbo说明如下:
为了澄清,使用.NET Core的Azure WebJobs运行良好。它特别使用了尚未支持的WebJobs SDK。
考虑到您的场景,我假设您需要构建普通的WebJobs和相关的库(模型,查询等)而不是NETCore,以便使用WebJobs SDK。或者你需要重新设计你的场景。
答案 1 :(得分:0)
如果某人仍在寻找解决方案,最近的版本
支持此功能 Install-Package Microsoft.Azure.WebJobs -Version 3.0.0-beta4
请注意,此套餐仍处于测试阶段。您可以在https://www.nuget.org/packages/Microsoft.Azure.WebJobs/3.0.0-beta4
查看最新动态