【Azure WebJob】is_in_place 参数在App Service Web Job中的作用? - LuBu0505/My-Code GitHub Wiki
问题描述
如果在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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!