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

简介: 本文介绍了Webjob配置文件`settings.job`中`is_in_place`参数的作用。默认值为`false`时,WebJob会先将文件复制到临时文件夹再运行;设为`true`后,WebJob可直接在源文件所在文件夹运行,无需复制。文章通过实验验证了该参数的效果,并对比了不同设置下的运行目录路径,同时提供了官方文档作为参考,帮助用户深入理解此配置的使用场景与意义。

问题描述

如果在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

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
9月前
|
存储 安全 Linux
【Azure App Service】在App Service中查看CA证书
在 Azure App Service 中,使用自签名或私有 CA 证书的远程服务可能会导致 SSL 握手失败。解决方法包括使用受信任 CA 签发的证书,或通过 App Service Environment 加载自定义根证书,实现安全连接。
214 4
|
7月前
|
Java 应用服务中间件 API
【App Service】部署War包到Azure云上遇404错误
Java应用部署至Azure App Service for Windows后报404,本地运行正常。经排查,日志提示类文件版本不兼容:应用由Java 17(class file version 61.0)编译,但环境仅支持到Java 11(55.0)。错误根源为Java版本不匹配。调整App Service的Java版本至17后问题解决,成功访问接口。
760 3
|
7月前
|
存储 Linux 网络安全
【Azure App Service】Root CA on App Service
Azure App Service for Windows应用连接外部SSL服务时,需确保其证书由受信任的根CA颁发。多租户环境下无法修改根证书,但ASE(单租户)可加载自定义CA证书。若遇证书信任问题,可更换为公共CA证书或将应用部署于ASE并导入私有CA证书。通过Kudu的PowerShell(Windows)或SSH(Linux)可查看当前受信任的根证书列表。
167 13
|
8月前
|
API 网络架构 容器
【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
在扩展 Azure Container Apps 副本时,因 Container App Environment 的 CPU 核心数已达上限(500 cores),导致扩展失败。本文介绍如何使用 `az rest` 命令调用 Azure China Cloud 管理 API,查询当前环境的 CPU 使用情况,并提供具体操作步骤及示例。
309 17
|
8月前
|
网络协议 Java Linux
【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?
在 Azure App Service(Windows 和 Linux)中部署应用时,分析网络连接状态是排查异常、验证端口监听及确认后端连接的关键。本文介绍如何在 Linux 环境中使用 `netstat` 命令查看特定端口(如 443、3306、6380)的连接情况,并解析输出结果。同时说明在 Windows App Service 中 `netstat` 被禁用的情况下,如何通过门户抓包等替代方法进行网络诊断。内容涵盖命令示例、操作步骤及附录说明,帮助开发者快速掌握云环境中的网络分析技巧。
217 11
|
8月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
227 1
|
9月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
467 5
|
10月前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
578 1
|
10月前
|
存储 缓存 Serverless
【Azure Container App】如何在Consumption类型的容器应用环境中缓存Docker镜像
在 Azure 容器应用的 Consumption 模式下,容器每次启动均需重新拉取镜像,导致冷启动延迟。本文分析该机制,并提出优化方案:使用 ACR 区域复制加速镜像拉取、优化镜像体积、设置最小副本数减少冷启动频率,或切换至 Dedicated 模式实现镜像缓存,以提升容器启动效率和应用响应速度。
465 0
|
7月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1303 139