ASP.NET Core 2.0 Azure Webjobs SDK 添加项目引用抛出异常
ASP.NET Core 2.0 Azure Webjobs SDK adding project reference throws exception
现在 asp.net 核心 2.0 已经推出,我开始测试新的 azure webjobs sdk。一切正常,但是当我添加项目引用(netstandard 2.0 class 库)时,我得到了这个异常。
堆栈跟踪:
System.MissingMethodException occurred
HResult=0x80131513
Message=Method not found: 'System.Collections.Generic.Dictionary2<System.String,System.Object> Microsoft.Extensions.Configuration.IConfigurationBuilder.get_Properties()'.
Source=<Cannot evaluate the exception source>
StackTrace:
at Microsoft.Extensions.Configuration.FileConfigurationExtensions.GetFileProvider(IConfigurationBuilder builder)
at Microsoft.Extensions.Configuration.FileConfigurationSource.EnsureDefaults(IConfigurationBuilder builder)
at Microsoft.Extensions.Configuration.Json.JsonConfigurationSource.Build(IConfigurationBuilder builder)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.BuildConfiguration()
at System.Lazy
1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy
1.CreateValue()
at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.get_Configuration()
at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.GetSettingFromConfigOrEnvironment(String settingName)
at Microsoft.Azure.WebJobs.JobHostConfiguration..ctor(String dashboardAndStorageConnectionString)
at Microsoft.Azure.WebJobs.JobHostConfiguration..ctor()
at CommunicationsProcessor.Program.Main(String[] args) in C:\Users\RugerTek\Documents\Projects\facturas\CommunicationsProcessor\Program.cs:line 13
提前致谢!
我这边也测试过。但我无法重现该问题。这是我所做的步骤。
第 1 步,创建 .NET Core 2.0 控制台应用程序。
第 2 步,使用以下命令安装 Microsoft.Azure.WebJobs 3.0.0-beta1-10941。
Install-Package Microsoft.Azure.WebJobs -Version 3.0.0-beta1-10941
第 3 步,向项目添加 2 classes。
class Program
{
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", "mystorage-connectionstring");
Environment.SetEnvironmentVariable("AzureWebJobsStorage", "mystorage-connectionstring");
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
host.RunAndBlock();
}
}
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, TextWriter log)
{
log.WriteLine(message);
}
}
第 4 步,创建名为 ALibrary 的 .NET Standard 2 class 库。我的 class 库中只有一个简单类型。
public class Class1
{
public string Property1 { get; set; }
}
第 5 步,添加对 class 库的引用。
第 6 步,构建并 运行 我的控制台应用程序 (WebJob)。如果我向队列中添加一条消息,我可以从控制台获得正确的输出 window。
请比较我和你的步骤,如果有差异,请post。
现在 asp.net 核心 2.0 已经推出,我开始测试新的 azure webjobs sdk。一切正常,但是当我添加项目引用(netstandard 2.0 class 库)时,我得到了这个异常。
堆栈跟踪:
System.MissingMethodException occurred HResult=0x80131513 Message=Method not found: 'System.Collections.Generic.Dictionary
2<System.String,System.Object> Microsoft.Extensions.Configuration.IConfigurationBuilder.get_Properties()'. Source=<Cannot evaluate the exception source> StackTrace: at Microsoft.Extensions.Configuration.FileConfigurationExtensions.GetFileProvider(IConfigurationBuilder builder) at Microsoft.Extensions.Configuration.FileConfigurationSource.EnsureDefaults(IConfigurationBuilder builder) at Microsoft.Extensions.Configuration.Json.JsonConfigurationSource.Build(IConfigurationBuilder builder) at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build() at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.BuildConfiguration() at System.Lazy
1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor) at System.Lazy
1.CreateValue() at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.get_Configuration() at Microsoft.Azure.WebJobs.Host.ConfigurationUtility.GetSettingFromConfigOrEnvironment(String settingName) at Microsoft.Azure.WebJobs.JobHostConfiguration..ctor(String dashboardAndStorageConnectionString) at Microsoft.Azure.WebJobs.JobHostConfiguration..ctor() at CommunicationsProcessor.Program.Main(String[] args) in C:\Users\RugerTek\Documents\Projects\facturas\CommunicationsProcessor\Program.cs:line 13
提前致谢!
我这边也测试过。但我无法重现该问题。这是我所做的步骤。
第 1 步,创建 .NET Core 2.0 控制台应用程序。 第 2 步,使用以下命令安装 Microsoft.Azure.WebJobs 3.0.0-beta1-10941。
Install-Package Microsoft.Azure.WebJobs -Version 3.0.0-beta1-10941
第 3 步,向项目添加 2 classes。
class Program
{
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", "mystorage-connectionstring");
Environment.SetEnvironmentVariable("AzureWebJobsStorage", "mystorage-connectionstring");
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
host.RunAndBlock();
}
}
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, TextWriter log)
{
log.WriteLine(message);
}
}
第 4 步,创建名为 ALibrary 的 .NET Standard 2 class 库。我的 class 库中只有一个简单类型。
public class Class1
{
public string Property1 { get; set; }
}
第 5 步,添加对 class 库的引用。
第 6 步,构建并 运行 我的控制台应用程序 (WebJob)。如果我向队列中添加一条消息,我可以从控制台获得正确的输出 window。
请比较我和你的步骤,如果有差异,请post。