【Azure WebJob】is_in_place 参数在App Service Web Job中的作用?

问题描述

如果在Webjob的配置文件(settings.job) 中添加了 is_in_place , 它有什么作用呢?

 

问题解答

根据官方文档解释,is_in_place  默认值为 false,如果设置为 true , 表示允许 WebJob不用首先将其复制到临时文件夹,而可以在源文件所在的原始文件夹中运行。

 

当我们从Azure App Service的Webjob页面上传webjob的源文件后,它在App Service上所保存的路径为:C:\home\site\wwwroot\App_Data\jobs\ 

基于以上信息,通过修改 settings.job 并添加 is_in_place参数来验证WebJob的结果:

1) 通过kudu站点,直接添加 settings.job 文件,内容如下:

{
 "is_in_place": true
}

 

2)  进入Process Explorer页面,点击w3wp.exe (scm) 进程,查看MyConsoleApp1 的 properties 按钮,点击Handles Tab页,就可以查看到dll的加载路径!

 

效果图对比

1) is_in_place 参数值默认为false的情况下,webjob的源文件在 C:\home\site\wwwroot\App_Data\jobs\continuous\myconsoleapp\publish\MyConsoleApp1.dll, 而运行目录为:D:\DWASFiles\Sites\#1xxxxxxx

 

 

2) is_in_place 修改为true后,webjob的源文件在 C:\home\site\wwwroot\App_Data\jobs\continuous\myconsoleapp\publish\MyConsoleApp1.dll, 而运行目录为也是 C:\home\site\wwwroot\App_Data\jobs\continuous\myconsoleapp\publish\MyConsoleApp1.dll

 

参考资料

WebJobs 支持设置的参数:https://docs.azure.cn/zh-cn/app-service/webjobs-dotnet-deploy-vs#settingsjob-reference

 

posted @ 2025-06-11 20:40  路边两盏灯  阅读(14)  评论(0)    收藏  举报