在Azure App Service界面上,添加新的Web Job(工作任务)时,一直添加失败。无详细错误提示,在App Service的Activity Logs(活动日志)中,根本没有添加失败的任何操作记录,这是什么情况呢?
因为从错误返回窗口中没有任何的错误说明,并且App Service资源的活动日志中,没有任何记录。所以需要通过浏览器的开发者模式 ———> 网络日志中,查看在创建Web Job时候,是否成功发送出请求,请求是否又正确的响应。所以排查步骤为:
1:打开浏览器开发者模式(F12),查看网络请求。然后重新创建一个WebJob以复现问题。并查看网络请求中,所记录浏览器所发出的全部请求,查看是否又错误的结果结果,和查看浏览器Console的日志输出:
Network请求结果为:
Console日志中输出:
Access to XMLHttpRequest at 'https://xxxxxx.scm.chinacloudsites.cn/api/triggeredwebjobs/testwebjob01' from
origin 'https://portal.azure.cn' has been blocked by CORS policy: Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource. [error][WebJobsViewModel][createWebJob][failed] - Failed to add web job
2:发现错误原因是:创建WebJob的请求所使用的App Service的Host(https://<your app service name>.scm.chinacloudsites.cn/api/triggeredwebjobs/testwebjob01)访问被拒绝(Error 403 - Forbidden),因为当前App Service启用了私有终结点(Private Endpoint),外面无法访问。
所以解决的办法是:
在启用Private Endpoint的内网中,寻找一台即可以访问公共网络,又可以访问内网的虚拟机(VM), 通过浏览器打开Azure门户(https://portal.azure.cn/),并重新创建WebJob,即可以成功!
为 Azure Web 应用使用专用终结点:https://docs.azure.cn/zh-cn/app-service/networking/private-endpoint
【END】