0
  • I have an Asp.Net Core MVC 6.0 application.
  • It contains multiple class library projects.
  • It is also running Asp.Net Identity.
  • The project is also hosted in a Github repository.

The application builds and runs fine locally, however, I have added a Github Action for deploying the website to an Azure App Service Linux box, and whilst the deployment says it was successful, the website never gets deployed to Azure.

Here is the website running fine locally:

enter image description here

Here is the Github Action deployment status:

enter image description here

Here is the Azure App Service page, following the "successful" deployment status on Github Actions:

enter image description here

Additional Information

I can also see that an issue has been opened here whereby the user reports that the issue was to do with Asp.Net Identity, and that they had to downgrade the version from .Net 6 to .Net 5, to get it to deploy successfully.

Questions:

  1. Does anyone have any insights into why this isn't working?
  2. How do I debug this scenario?

UPDATE 1:

Following some debugging, I can see that the secret I created on Github Actions (which stores the publishing profile for the Azure Web App Service Server , is actually blank, despite me adding the secret value multiple times).

enter image description here

Is this a bug in Github? Does anyone else have the same problem?

UPDATE 2:

  • I have visited the KUDU site for the azure app service (https://houseplatform.scm.azurewebsites.net/newui).
  • I then checked the contents under the ../site/wwwroot and I can see that there is no file named hostingstart.html (but there a lot of DLLs for all the class library projects from the source code).

Here is my YAML file:

name: Build and deploy ASP.Net Core app to an Azure Web App

env:
  AZURE_WEBAPP_NAME: house-platform-dev    # set this to the name of your Azure Web App
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0'                 # set this to the .NET Core version to use

on:
  push:
    branches: [ "master" ]
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Set up .NET Core
        uses: actions/setup-dotnet@v2
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }}
      
      - name: Set up dependency caching for faster builds
        uses: actions/cache@v3
        with:
          path: ~/.nuget/packages
          key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
          restore-keys: |
            ${{ runner.os }}-nuget-
      - name: Build with dotnet
        run: dotnet build --configuration Release

      - name: dotnet publish
        run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v3
        with:
          name: .net-app
          path: ${{env.DOTNET_ROOT}}/myapp

  deploy:
    permissions:
      contents: none
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Development'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: .net-app

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ env.AZURE_WEBAPP_NAME }}
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
Goober
  • 13,146
  • 50
  • 126
  • 195

1 Answers1

1

Assume your app service name is HousePlatform, please follow my steps to troubleshoot the issue. If you provide more details, I also will update this answer.

Steps:

  1. Go to the kudu site via the link : https://HousePlatform.scm.azurewebsites.net/newui

  2. Check the contents under the ../site/wwwroot.

    enter image description here

    enter image description here

    enter image description here

  3. If it's empty or just have a hostingstart.html file like my sample picture, it means deploy failed. We need to check the .yml file, you can find it under the .github/workflows in github repo.

  4. If the contents under the ../site/wwwroot like locals, it means it deployed successfully. Then we can move to step 5.

  5. Navigate to Configuration, click the General settings, then find Startup Command. We can refer the official doc to add the startup command.

    enter image description here

Jason Pan
  • 15,263
  • 1
  • 14
  • 29
  • I've provided an update which explains that there was no hostingstart.html file present in the KUDU site. Thoughts? – Goober Nov 08 '22 at 16:58
  • @Goober You misunderstood me, the hostingstart.html file is created when creating a new app service, and when we perform a publishing operation, this file may be deleted (if you check Delete the original file when publishing, the original publish file will be deleted). – Jason Pan Nov 09 '22 at 01:32
  • @Goober Luckily, the files have been published successfully, which is why you can see a lot of dll files, please follow my answer, add startup command. – Jason Pan Nov 09 '22 at 01:33