Asp.net 将web应用发布到Azure网站临时部署槽失败,webjob
我刚刚为我的应用程序创建了一个新的部署槽,将发布配置文件导入Visual Studio,但部署后我收到以下错误消息: 错误8:创建WebJob计划时出错:找不到与网站名[myapp_uuStaging]和网站URL[supplied]匹配的网站 我有两个webjob,一个是连续webjob,一个是计划webjob 如所述,我已登录到正确的Azure帐户 为了将我的应用部署到带有webjobs的临时部署槽,我是否需要设置其他设置Asp.net 将web应用发布到Azure网站临时部署槽失败,webjob,asp.net,visual-studio,azure,azure-webjobs,azure-deployment-slots,Asp.net,Visual Studio,Azure,Azure Webjobs,Azure Deployment Slots,我刚刚为我的应用程序创建了一个新的部署槽,将发布配置文件导入Visual Studio,但部署后我收到以下错误消息: 错误8:创建WebJob计划时出错:找不到与网站名[myapp_uuStaging]和网站URL[supplied]匹配的网站 我有两个webjob,一个是连续webjob,一个是计划webjob 如所述,我已登录到正确的Azure帐户 为了将我的应用部署到带有webjobs的临时部署槽,我是否需要设置其他设置 我的应用程序正在使用ASP.NET,如果有什么不同的话?使用Azur
我的应用程序正在使用ASP.NET,如果有什么不同的话?使用Azure调度程序时有一些怪癖。建议改用新的CRON支持。您可以了解更多关于它的信息。Jeff 正如David所建议的,您可以/应该迁移到新的CRON支持。下面是一个示例。WebJob将作为一个连续的WebJob部署 请记住,为了使用它,您需要安装WebJobs包和当前预发布的扩展。您可以在Nuget上获得它们 安装包Microsoft.Azure.WebJobs-预安装 安装包Microsoft.Azure.WebJobs.Extensions-预安装 另外,正如David建议的,如果您不使用WebJobs SDK,也可以使用settings.job文件运行它 Program.cs
static void Main()
{
//Set up DI (In case you're using an IOC container)
var module = new CustomModule();
var kernel = new StandardKernel(module);
//Configure JobHost
var storageConnectionString = "your_connection_string";
var config = new JobHostConfiguration(storageConnectionString) { JobActivator = new JobActivator(kernel) };
config.UseTimers(); //Use this to use the CRON expression.
//Pass configuration to JobJost
var host = new JobHost(config);
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
public class Functions
{
public void YourMethodName([TimerTrigger("00:05:00")] TimerInfo timerInfo, TextWriter log)
{
//This Job runs every 5 minutes.
//Do work here.
}
}
函数.cs
static void Main()
{
//Set up DI (In case you're using an IOC container)
var module = new CustomModule();
var kernel = new StandardKernel(module);
//Configure JobHost
var storageConnectionString = "your_connection_string";
var config = new JobHostConfiguration(storageConnectionString) { JobActivator = new JobActivator(kernel) };
config.UseTimers(); //Use this to use the CRON expression.
//Pass configuration to JobJost
var host = new JobHost(config);
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
public class Functions
{
public void YourMethodName([TimerTrigger("00:05:00")] TimerInfo timerInfo, TextWriter log)
{
//This Job runs every 5 minutes.
//Do work here.
}
}
您可以在TimerTrigger属性中更改计划
更新添加了webjob-publish-settings.json文件
下面是webjob-publis-settings.json的一个示例
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "YourWebJobName",
"startTime": null,
"endTime": null,
"jobRecurrenceFrequency": null,
"interval": null,
"runMode": "Continuous"
}
他们做了同样的事情?@Jeff他们做了。你可以用这两者来完成同样的事情。@lopezbertoni太好了!所以我只需要在应用新的CRON东西之前删除计划?或者还有更多的方法来将现有的webjob转换为使用CRON吗?有关Web应用程序和使用CRON计划的webjob的示例,请参阅。
webjob publish settings.json
没有调度信息,因为它位于设置.job
中。您可能还需要删除Azure门户中的调度程序资源以进行清理。@Speedbird186是的,调度的作业是“触发”的,因此这是意料之中的。如果它在门户中显示调度,则表明您状态良好。请确保您已启用“Awlays On”以n Web应用程序。很好-我的webjob JSON文件中有什么需要更改的吗?@Jeff确保它设置为作为连续webjob运行。我将用我的JSON文件更新我的答案。太好了,谢谢!那么什么时候可以使用调度程序?当使用工作者角色时?请注意,这与我描述的设置.job
CRON不同。settings.job
用于一般WebJobs(例如,您可以使用它来启动批处理文件),这种技术是WebJobs SDK特有的。@Davidebo感谢David的澄清!很高兴知道!