我使用链接到我的网络应用程序的webjobs sdk创建了一个Web作业。好吧它不再了(我从web应用程序项目中删除了webjobs-list.json文件),因为当它被链接时,它只是将源代码文件复制到网站的app-data文件夹中,而不是bin文件夹/二进制文件/ exe文件。但是现在我的网络作业从视觉工作室在线部署到我的网站azure并尝试运行,它不是从我的web应用程序在azure门户中的设置中的连接字符串中读取连接字符串(AzureWebJobsStorage和AzureWebJobsDashboard)。它在使用编译webjob生成的exe部署的配置文件中查找它们。如果我手动将这些字符串放在该配置中并签入,并且重新部署它将从那里使用它们,所以它根本不检查门户(即使我的Web应用程序使用门户中定义的内容运行正常)。我认为所有的Web作业都应该首先在azure门户中寻找连接字符串?这对我来说根本不会发生。还有其他人经历过这个吗?它可能与Visual Studio在线部署它有什么关系吗?
尝试启动时记录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] at Microsoft.Azure.WebJobs.Host.Executors.StorageAccountParser.ParseAccount(String connectionString,String connectionStringName,IServiceProvider services)
此外,我真正部署的唯一方法是从Web项目的properties文件夹中删除webjobs-list.json文件。我知道我不应该这样做,一切都应该工作并在那里部署,但是当我把它留在那里时,它不会将二进制文件/ bin /可执行文件复制到App_Data \ Jobs \ continuous中网站上的[webjob]文件夹...它会将Web作业项目的所有源代码\文件复制到那里(当然不会工作/运行,因为它只是代码,而不是exe)。删除该webjobs-list.json文件,然后向我的发布中添加第二个任务以从构建中找到[webjob] .zip文件,然后它将只复制二进制文件和可执行文件到App_Data \ Jobs \ continuous [webjob] ]文件夹。也许这只是尝试在线构建和发布Visual Studio时遇到的一个问题,它不能很好地处理Web作业部署......不确定,我无法找到很多关于设置它的信息。使用Web应用程序部署Web作业。
答案 0 :(得分:1)
通常情况下,这应该可行。流程是:
您能否确保部署foo.exe和foo.exe.config?
更新:正如我们在聊天中发现的那样,问题是您在Azure中的连接字符串名称中出现了拼写错误。