为什么我需要在Azure管理门户中而不是在我的WebJob的App.config中为WebJobs配置连接字符串?

时间:2015-01-21 21:38:12

标签: azure azure-storage azure-webjobs azure-webjobssdk

通过右键单击我的WebApp项目并添加新的Azure Web项目,我创建了一个计划的Azure WebJob。我在WebJob项目的App.config中设置了AzureWebJobsDashboard和AzureWebJobsStorage连接字符串。我现在单独留下.cs文件中的默认代码。接下来,我从Visual Studio(顺便提一下2013 Update 4)发布到Azure网站。它创建了WebJob,我可以从Azure管理站点或Visual Studio运行它,并且它是成功的。我可以看到我期望它们的输出日志。但是,Azure WebJob详细信息页面显示以下警告/错误:

  

确保您正在设置名为的连接字符串   您的Microsoft Azure网站配置中的AzureWebJobsDashboard   使用以下格式   DefaultEndpointsProtocol = https和帐户名= NAME; AccountKey = KEY   指向Microsoft的Azure Azure存储帐户   存储Azure WebJobs运行时日志。

     

未正确设置Microsoft Azure WebJobs的配置   仪表板。在您的Microsoft Azure网站配置中,您必须设置   使用以下命令名为AzureWebJobsDashboard的连接字符串   格式DefaultEndpointsProtocol = https; AccountName = NAME; AccountKey = KEY   指向Microsoft的Azure Azure存储帐户   存储Azure WebJobs运行时日志。

它还提供了http://azure.microsoft.com/blog/2013/07/17/windows-azure-web-sites-how-application-strings-and-connection-strings-work/的链接,但没有解释我收到错误消息的原因。

现在,要使此警告/错误消失,我将在Azure管理站点的配置页面中添加相同的AzureWebJobsDashboard连接字符串。

所以,我试图弄清楚我是否做错了什么,或者这只是微软尚未修复的WebJobs中的一个问题。我真的希望能够在App.config中拥有它,而不必记住在我们为不同环境产生的每个网站中设置它。

非常感谢你的时间和帮助。

2 个答案:

答案 0 :(得分:37)

仪表板无法访问您的Web作业的app.config文件,即使这样,您也可能有多个webjobs,因此无法知道要选择哪个连接字符串。这就是您需要在门户中设置连接字符串的原因。

但是,如果在门户中设置了Web作业,则不必在app.config中设置它。 WebJobs SDK知道如何从那里读取它们。

答案 1 :(得分:-1)

我必须手动添加授权标头: Azure Portal Schedular UI config

为了获得价值anfter“Basic”我使用了这段代码:

var byteArray = Encoding.ASCII.GetBytes("<user>:<password>");
var base64 = Convert.ToBase64String(byteArray);

Ithink是Azure Scheduler UI错误