Logic Apps Standard内置文件系统连接器路径异常求助
我在App Service Environment v3中运行Logic Apps Standard状态工作流,通过HTTP触发器调用内置文件系统连接器,尝试列出\\live.sysinternals.com\files路径下的文件,过程中出现两类错误:
初始错误
执行列表操作时返回:
"message": "The service provider action failed with error code 'InvalidServiceProviderConnection' and error message 'The mounpath
C:\\mounts\\FileSystemdoes not exist as the provided connection is invalid.'."
修改配置后的新错误
将逻辑应用配置项FileSystem_mountPath从C:\mounts\FileSystem改为C:\mounts后,重新运行返回:
The service provider action failed with error code 'ServiceOperationResourceNotFound' and error message 'Could not find a part of the path 'C:\live.sysinternals.com\files'
已知信息
- 工作流定义如下:
{ "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "actions": { "List_files_and_subfolders_in_a_folder": { "inputs": { "parameters": { "folderPath": "\\\\live.sysinternals.com\\files" }, "serviceProviderConfiguration": { "connectionName": "FileSystem", "operationId": "listFolder", "serviceProviderId": "/serviceProviders/FileSystem" } }, "runAfter": {}, "type": "ServiceProvider" } }, "contentVersion": "1.0.0.0", "outputs": {}, "triggers": { "manual": { "inputs": {}, "kind": "Http", "type": "Request" } } }, "kind": "Stateful" }
- 通过Kudu/PowerShell控制台确认
C:\mounts文件夹为空。
核心原因
内置文件系统连接器的FileSystem_mountPath配置用于映射本地已挂载的路径,而非直接解析网络UNC路径。连接器会将指定的folderPath拼接在mountPath之后,所以你输入的网络共享路径会被当作本地路径处理,导致错误。要访问\\live.sysinternals.com\files这类网络共享,需先在ASE的宿主虚拟机上挂载该共享,再通过连接器访问挂载后的本地路径。
解决步骤
在ASE宿主虚拟机上挂载网络共享
- 进入ASE v3资源页面,通过Jumpbox或RDP访问宿主虚拟机(确保网络连通性)。
- 执行挂载命令:
PowerShell方式:
命令行方式:New-PSDrive -Name "S" -PSProvider FileSystem -Root "\\live.sysinternals.com\files" -Persistnet use S: \\live.sysinternals.com\files /persistent:yes - 验证挂载成功,确认本地盘符(如
S:\)可正常访问共享文件。
调整逻辑应用配置与工作流
- 将逻辑应用的
FileSystem_mountPath配置项设置为挂载后的本地盘符路径,比如S:\。 - 修改工作流中的
folderPath:若访问共享根目录,留空或填\;若访问子文件夹,填写对应子路径即可。
- 将逻辑应用的
验证工作流
- 重新发布并运行工作流,确认文件列表操作正常执行。
额外说明
- 若无法直接访问ASE宿主虚拟机,可通过自定义脚本扩展(Custom Script Extension)在虚拟机上自动执行挂载命令。
- 检查ASE的NSG规则、路由表,确保网络环境允许访问
live.sysinternals.com。
内容的提问来源于stack exchange,提问作者Rob Bowman

