我有一个最简单的webjobs SDK示例,它应该在将新文件放在输入blob容器上并将其复制到另一个容器时触发。
下面是代码和App.config,其中有意识地将帐户名称和密钥修改为XXX。
问题是当我在本地运行时,我得到以下例外。
System.InvalidOperationException未处理 的HResult = -2146233079 消息= Microsoft Azure WebJobs SDK仪表板连接字符串缺失或为空。
我已经尝试过了:
我今天刚安装了最新版本的SDK(2.9,我相信?)。这是一台新机器,我只是在学习Azure和WebJobs,所以这并不像我之前在这台机器上运行过很多复杂的场景。
此时,我很茫然。非常感谢任何帮助,谢谢。
代码:
using Microsoft.Azure.WebJobs;
using System.IO;
namespace TestWebJob1
{
class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.RunAndBlock();
}
public static void CopyCopy([BlobTrigger("testinput/{name}")] TextReader input, [Blob("testoutput/{name}")] out string output)
{
output = input.ReadToEnd();
}
}
}
的App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<connectionStrings>
<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=XXXX;AccountKey=XXX" />
</connectionStrings>
</configuration>
答案 0 :(得分:5)
非常愚蠢。原来需要2个连接字符串。仪表板和存储。
由于异常文本中唯一的区别是“存储与仪表板”这个词,我并没有真正阅读整篇文章,直到阅读了几篇博文后才意识到需要2个连接。
添加名称为AzureWebJobsStorage的连接字符串可修复错误。
答案 1 :(得分:1)
配置JobHostConfiguration对象时,可以尝试显式设置连接字符串。
class Program
{
static void Main()
{
//Configure JobHost
var storageConnectionString = "your_connection_string"; //You can load this from .config file obviously
var config = new JobHostConfiguration(storageConnectionString);
//Pass configuration to JobJost
var host = new JobHost(config);
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}
希望这会有所帮助。