【发布时间】:2017-03-31 21:21:16
【问题描述】:
我使用链接到我的 Web 应用程序的 webjobs sdk 创建了一个 Web 作业。好吧,它不再是(我从 web 应用程序项目中删除了 webjobs-list.json 文件),因为当它被链接时,它只是将源代码文件复制到网站的 app-data 文件夹中,而不是 bin 文件夹/二进制文件/exe。但是现在我的 Web 作业已从 Visual Studio Online 部署到我的网站的 azure,并尝试运行,它不会从我的 Web 应用程序设置中的连接字符串(AzureWebJobsStorage 和 AzureWebJobsDashboard)读取连接字符串(AzureWebJobsStorage 和 AzureWebJobsDashboard)。它在使用编译 webjob 生成的 exe 部署的配置文件中查找它们。如果我手动将这些字符串放入该配置并签入,然后重新部署它将从那里使用它们,因此它根本不会检查门户(即使我的 Web 应用程序使用门户中定义的内容运行良好)。我认为所有网络作业都应该首先在 azure 门户中查找连接字符串?这对我来说根本没有发生。有没有其他人经历过这个?会不会和 Visual Studio Online 的部署方式有关?
在尝试启动时为 webjob 进程记录的部分错误:
Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException:错误索引方法“Functions.ProcessTestQueueMessage”---> System.InvalidOperationException:Microsoft Azure WebJobs SDK“存储”连接字符串丢失或为空。可以通过以下方式设置 Microsoft Azure 存储帐户连接字符串: [04/01/2017 02:27:40 > ceef22: INFO] 1. 在 .config 文件的 connectionStrings 部分中设置名为“AzureWebJobsStorage”的连接字符串,格式如下,或 [04/01/2017 02:27:40 > ceef22: INFO] 2. 设置名为“AzureWebJobsStorage”的环境变量,或 [04/01/2017 02:27:40 > ceef22: INFO] 3. 设置 JobHostConfiguration 的相应属性。 [04/01/2017 02:27:40 > ceef22: INFO] 在 Microsoft.Azure.WebJobs.Host.Executors.StorageAccountParser.ParseAccount(字符串连接字符串,字符串连接字符串名称,IServiceProvider 服务)
另外,我可以真正部署它的唯一方法是从 web 项目的属性文件夹中删除 webjobs-list.json 文件。我知道我不应该这样做,一切都应该在那里工作和部署,但是当我把它放在那里时,它不会将二进制文件/bin/可执行文件复制到 App_Data\Jobs\continuous网站上的 [webjob] 文件夹...它实际上会将 Web 作业项目的所有源代码\文件复制到那里(这当然不会工作/运行,因为它只是代码,而不是 exe)。删除该 webjobs-list.json 文件,然后在我的版本中添加第二个任务以从构建中查找 [webjob].zip 文件,然后它将仅将二进制文件和可执行文件复制到 App_Data\Jobs\continuous[webjob ] 文件夹。也许这只是尝试从 Visual Studio Online 构建和发布的问题,并且它不能很好地处理 Web 作业部署......不确定,我找不到很多关于设置它的信息使用 Web 应用部署 Web 作业。
【问题讨论】:
标签: azure azure-webjobs