繁体   English   中英

为什么我会收到异常Azure WebJobs SDK Dashboard连接字符串缺失或空时根本不为空?

[英]Why am I getting exception Azure WebJobs SDK Dashboard connection string is missing or empty when it is not empty at all?

我有一个最简单的webjobs SDK示例,它应该在将新文件放在输入blob容器上并将其复制到另一个容器时触发。

下面是代码和App.config,其中有意识地将帐户名和密钥修改为XXX。

问题是当我在本地运行时,我得到下面的例外。

System.InvalidOperationException未处理HResult = -2146233079消息= Microsoft Azure WebJobs SDK仪表板连接字符串缺失或为空。

我已经尝试过了:

  1. 创建JobHostConfiguration变量并在那里设置连接字符串。 我犯了同样的错误。
  2. 将此发布到实际的Azure WebJob,并将连接字符串放在Azure门户网站配置中,我在作业日志中得到完全相同的错误。 请注意,作业模式设置为“连续”,并且在Web应用程序上设置了AlwaysOn选项。
  3. 将连接信息放在appSetting条目中而不是connectionStrings中。 在某处的博客文章中看到它,仍然无法正常工作。
  4. 在连接字符串中使用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();
        }
    }
}

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>

很傻。 原来需要2个连接字符串。 仪表板和存储。

由于异常文本中唯一的区别是“存储与仪表板”这个词,我并没有真正阅读整篇文章,直到读了几篇博文后才知道需要2个连接。

添加名称为AzureWebJobsStorage的连接字符串可修复错误。

您可以在配置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();
    }
}

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM