Azure Function应用-发布失败

时间:2018-07-25 12:30:46

标签: azure azure-functions webdeploy

我无法发布(WebDeploy)我的Azure Function应用程序(这是一个耐用的功能,我知道它无关紧要,但是以防万一)。这是今天开始发生的。

我的Visual Studio的输出窗口中出现“发布失败”弹出窗口和以下错误消息。

错误消息

<ProjectName> -> C:\search\source\<Solution Folder>\obj\Release\netstandard2.0\PubTmp\Out\
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Web deployment task failed. (Could not connect to the remote computer ("<functionappname>.scm.azurewebsites.net"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.) [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The requested resource does not exist, or the requested URL is incorrect. [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Error details: [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Could not connect to the remote computer ("<functionappname>.scm.azurewebsites.net"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE. [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The remote server returned an error: (404) Not Found. [<projectname>.csproj]
  Publish failed to deploy.

函数运行时-beta

当我在浏览器中访问Function App Url时,收到“您的Function App 2.0预览已启动并正在运行”消息。而且,我在Kudu门户中也看不到任何错误。

我删除了该函数,并重新创建了同名的函数。

非常感谢您的帮助。

更新:这也是我也遇到的另一个错误。

C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Web deployment task failed. ((7/25/2018 1:16:27 PM) An error occurred when the request was processed on the remote computer.) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :  [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : (7/25/2018 1:16:27 PM) An error occurred when the request was processed on the remote computer. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : An error was encountered when processing operation 'Create Directory' on 'D:\home\site\wwwroot\bin'. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The error code was 0x800703E6. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Invalid access to memory location. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :  [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.FileSystemInfoEx.set_Attributes(FileAttributes value) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject source, Boolean whatIf) [<Project Name>.csproj]
  Publish failed to deploy.

谢谢, Praveen

7 个答案:

答案 0 :(得分:5)

不知道是否已关闭,但在将新的SDK版本部署到较旧的Azure功能应用程序时遇到了相同的问题。这是我所做的: 与其从Azure门户下载部署配置文件,不如使用Visual Studio自动部署创建一个新的配置文件。 这很重要-从Visual Studio部署时,它应该要求您升级已部署应用程序的版本,单击“是”,您的应用程序将被部署。

答案 1 :(得分:2)

将WebDeploy与SCM一起使用时无法重现错误。当我在应用程序设置中将WEBSITE_WEBDEPLOY_USE_SCM设置为false以避免使用SCM时,我看到An error was encountered when processing operation 'Create Directory' on 'wwwroot'就像您遇到的第二个错误。

可以尝试的几种选择:

  1. 在浏览器中访问https://functionappname.scm.azurewebsites.net,以检查您的网络环境是否正常并且没有防火墙限制。
  2. 发布时检查您是否设置了像Fiddler这样的代理。
  3. 转到门户,依次Reset publish credentialsDownload publish profile。删除旧的发布配置文件,然后导入新的配置文件以再次发布。
  4. 如果所有这些建议均失败,请删除与该功能相关的所有旧资源。然后创建具有新应用服务计划和存储的全新功能应用。尝试发布到此新应用。

答案 2 :(得分:1)

转到azure门户,停止功能应用,从vs发布,然后重新开始。

答案 3 :(得分:0)

对我来说很容易错过...但是,Azure上的Function阻止了我从Visual Studio 2017中发布。

需要的是在Azure上重新启动功能。

1)转到Azure门户,然后单击进入“功能”应用。

2)单击“函数”的名称,然后在“概述”选项卡中-在第二行菜单中,您应该看到“重新启动”。 (您将在以下行中看到它:停止-交换-重新启动-获取发布配置文件...等。)

3)单击重新启动

4)返回到Visual Studio 2017并重新发布。

我最初错过的错误消息:

img.fitHeightProperty().bind(Bindings.createDoubleBinding(() -> button.getFont().getSize(), button.fontProperty()));

答案 4 :(得分:0)

当我由于某些原因需要进行以下更改时,这似乎发生在我身上。

  1. 重建项目(确保可以在本地运行)。
  2. 单击以发布,但在此之前单击“管理应用程序设置” 快速检查,然后单击确定。
  3. 尝试发布。
  4. 如果失败,请关闭Visual Studio和Azure门户(停止运行或禁用所有相关对象)并重复。

最坏的情况是创建一个新的配置文件并部署到该配置文件。

答案 5 :(得分:0)

我通过在应用程序设置上将WEBSITE_RUN_FROM_PACKAGE设置为0来解决此问题。我通过将WebDeploy包从Azure DevOps同步到App Service文件系统来上传功能文件,而不是通过.zip包运行它。

https://docs.microsoft.com/bs-cyrl-ba/azure/azure-functions/run-functions-from-deployment-package上介绍了如何从部署程序包中运行功能以及以这种方式进行操作的所有好处,但是请记住:

  1. 只需将.zip部署程序包上传到d:\home\data\sitepackages(不要使用msdeploy动词“ sync”在wwwroot上同步文件系统)
  2. 在文件夹中添加一个仅包含软件包文件名称的packagename.txt,没有任何空格

答案 6 :(得分:-1)

与@Andrew Chung类似的问题,其中Azure中的文件被锁定,并且无法删除旧功能的dll文件。我试图升级到.NET core,并从另一个项目发布。不幸的是,直到为时已晚,我才看到他的回应,并按照@Jerry Liu的建议(#4)删除了功能应用程序并添加了一个新应用程序。直到我用不同的名称重新创建了该应用程序后,这似乎才对我不起作用。我怀疑xxxx.scm.azurewebsites.net仍指向您已退役的旧应用程序的IP地址时,可能存在DNS冲突。