我有一个最简单的 webjobs SDK 示例,当将新文件放入输入 blob 容器并将其复制到另一个容器时,应该会触发该示例。
下面是代码和App.config,其中帐户名和 key 特意修改为XXX。
问题是,当我在本地运行此程序时,出现以下异常。
System.InvalidOperationException 未处理 HResult=-2146233079 Message=Microsoft Azure WebJobs SDK 仪表板连接字符串丢失或为空。
我已经尝试过:
- 创建 JobHostConfiguration 变量并设置连接 那里的字符串。我也遇到同样的错误。
- 将其发布到实际的 Azure WebJob,并将连接字符串放入 Azure 门户网站配置中,我在作业日志中收到完全相同的错误。请注意,作业模式已设置为“连续”,并且在 Web 应用程序上设置了“AlwaysOn”选项。
- 将连接信息放入 appSetting 条目中,而不是放在 connectionStrings 中。在某处的博客文章中看到它,仍然不起作用。
- 在连接字符串中使用 UseDevelopmentStorage,但它提示不支持 Azure 存储模拟器。
我今天刚刚安装了最新版本的 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();
}
}
}
应用程序配置
<?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>
最佳答案
非常愚蠢。结果需要 2 个连接字符串。仪表板和存储。
由于异常文本中的唯一区别是“存储”与“仪表板”一词,因此我并没有真正阅读全文,直到阅读了更多博客文章后才意识到需要 2 个连接。
添加名称为 AzureWebJobsStorage 的连接字符串修复了错误。
关于azure - 当 Azure WebJobs SDK 仪表板连接字符串根本不为空时,为什么我会收到异常“Azure WebJobs SDK 仪表板连接字符串缺失或为空”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477442/