.NET MVC Azure Pipeline 部署 - IISWebAppManagementOnMachineGroup 未按预期工作

问题描述 投票:0回答:1

我正在尝试使用 Azure Pipelines 将我的 .NET Framework MVC 应用程序部署到 VM。

相关代码:

- task: IISWebAppManagementOnMachineGroup@0
            inputs:            
              IISDeploymentType: 'IISWebsite'
              ActionIISWebsite: 'CreateOrUpdateWebsite'
              WebsiteName: 'MySite'
              WebsitePhysicalPath: 'D:/MySite/WebUi'
              WebsitePhysicalPathAuth: 'WebsiteUserPassThrough'
              CreateOrUpdateAppPoolForWebsite: true
              AppPoolNameForWebsite: 'DefaultAppPool'
              DotNetVersionForWebsite: 'No Managed Code'
              PipeLineModeForWebsite: 'Integrated'
              AppPoolIdentityForWebsite: 'ApplicationPoolIdentity'
              AddBinding: true
              Bindings: |
                  {
                      bindings:[
                          {
                              "protocol":"http",
                              "ipAddress":"",
                              "hostname":"",
                              "port":"802",
                              "sslThumbprint":"",
                              "sniFlag":false
                          }
                      ]
                  }
          - task: IISWebAppDeploymentOnMachineGroup@0
            inputs:
              WebSiteName: 'MySite'
              Package: '$(Pipeline.Workspace)/drop/WebUi/WebUi.zip'

结果是,在 IIS 管理器中,我可以看到新站点已在“站点”文件夹下创建,但是当我按“浏览 *:802 (http)”时,我收到默认的 IIS 404 错误(HTTP 错误) 404.0 - 未找到), 详细信息:

Detailed Error Information:
Module     IIS Web Core
Notification       MapRequestHandler
Handler    StaticFile
Error Code     0x80070002
Requested URL      http://localhost:802/
Physical Path      D:/MySite/WebUi
Logon Method       Anonymous
Logon User     Anonymous

虽然,当我将此网站应用程序池从非托管更改为 v4.0 时,我收到标准网络浏览器错误:

This localhost page can’t be found
No webpage was found for the web address: http://localhost:802/
HTTP ERROR 404

不是应用程序池不受管理时的详细 IIS 错误。

基本设置(如物理路径)很好,指向驱动器上的正确位置,其中包含文件夹:bin、Content、fonts、Scripts、Views 和文件:favicon、global.asax、packages.config、web.config、所以看起来不错。

我检查过的内容:

  • 虚拟机上的 ASP.NET 版本和其他 Windows 功能
  • IIS 对 WebUi 文件夹的权限
  • DotNetVersionForWebsite: 'No Managed Code'
    更改为
    DotNetVersionForWebsite: 'v4.0'
    并将应用程序池更改为 v4.0 没有任何区别。

此应用程序之前已通过 WebUi 文件夹的 ctrl+c 和 ctrl+v 内容更新(在其他虚拟机上),因此应用程序本身没问题。

我发现的事情是,在应用程序运行良好的虚拟机上,在转到基本 URL(例如 servername.internal.com)后,它会自动重定向到 servername.internal.com/WebUi,并且在我的有问题的情况,它没有重定向到任何地方。

我不知道还应该检查什么。也许有什么方法可以从其他虚拟机(应用程序运行良好)转储 IIS 设置,以便将其与有问题的虚拟机 IIS 设置进行比较?

asp.net-mvc iis azure-pipelines cicd
1个回答
0
投票

请首先尝试手动设置站点,然后将应用程序内容复制并粘贴到其物理路径,然后再集成到管道中。这将有助于排除该服务器上的 IIS 功能、应用程序本身或部署工具造成的原因。

站点物理路径有可能被该服务器上的其他进程占用。在 IIS 部署期间,您可能需要重置 IIS 或使应用程序脱机进行测试。

- powershell: |
    iisreset /noforce
  displayName: Reset IIS
  retryCountOnTaskFailure: 6

- task: IISWebAppDeploymentOnMachineGroup@0
  inputs:
    WebSiteName: 'MySite'
    Package: '$(System.DefaultWorkingDirectory)\**\*.zip'
    TakeAppOfflineFlag: true
© www.soinside.com 2019 - 2024. All rights reserved.