IIS install 2.3.0 All Dashboards Return HTTP 500

After upgrading UD from 2.2 to 2.3 running in IIS all of the dashboards are stopped and when I try to start any of them I am getting “Dashboard x: Request failed with status code 500” . When I revert to 2.2 everything is fine.

fail: Universal.Server.Services.DashboardManager[0]
Dashboard process is not running. Dashboard may have crashed or failed to start.
info: UniversalAutomation.JobProcessManager[0]
Starting job using Process.
The native method “grpcsharp_batch_context_recv_status_on_client_error_string” does not exist

Did you overwrite your webconfig file and appsettings file while updating?

No, I made sure not to do that.

1 Like

Thank you for your reply.
I have a dev server with 2.3 running and a prod server with 2.2
I compared the web.config and they are the same.

The appsettings the only difference I can see is this section also I actually don’t save the appsettings file since I don’t have any custom settings so it may be overwritten .
2.3 has this section were the 2.2 install doesn’t have it.
“Scope”: “openid profile groups”,
“GetUserInfo”: true
},
“ClientCertificate”: {
“Enabled”: “false”

You’re the second person to mention this issue. I’m looking into it. The error message indicates that it’s failing to load a key file used to communicate between the Universal Server and the external PowerShell processes.

Can you give me a little more information about your environment?

  • Hosting Method
  • Operating System
  • .NET Framework Version (if using Windows PowerShell)

EDIT: I’d also be open to a Zoom call to take a look at your environment.

Adding my experience to this thread - I have the same issue upgrading to 2.3.0. Dashboards all stopped and IIS errors say Dashboards failed to execute

Also reading the endpoints.ps1 failed. Not sure if that is related

API page looks like this (I have 25 APIs in endpoints.ps1):

I’m reverting back to 2.1.2

Thank you Adam

  • Hosting Method
    local server
    SetupString : IIS 10.0
    VersionString : Version 10.0

  • Operating System
    OsName : Microsoft Windows Server 2016 Standard
    OsType : WINNT
    OsOperatingSystemSKU : StandardServerEdition
    OsVersion : 10.0.14393

NET Framework Version (if using Windows PowerShell)
Name : ConsoleHost
Version : 7.1.4

A Zoom call would be great.

Sounds good. I have a hunch I’d like to check out first and then we can get something setup. I haven’t reproduced this locally.

Can anyone let me know their install process? Do you folks delete all the application files or do you copy over the top of the existing ones?

I copy over the existing files in the IIS dir I just exclude the web.config from being overwritten

Can you do me a favor and try to delete everything in that directory except the web.config and place the 2.3 application files in there?

I wonder if there is a mismatch happening because a file that doesn’t exist in 2.3 is still there from the 2.2.1 install. I’m trying that myself to see if I can reproduce this that way.

If this is still happening after that, let’s schedule a call for later today or tomorrow.

EDIT: Maybe not the issue. It is still working in my environment after copying over the top.

That worked :smiley:

So it looks like there was a extra file, in the future should I delete all the files first and then paste?

1 Like

Yep. That’s what I would recommend.

1 Like

Thank you for your help, I’ll change that process.

In case it is helpful, this is what I use when upgrading (just modify some of the top level variables and insert your own AppPool/Website names):

    ### Below script assumes you copied your production 'web.config' and 'appsettings.json' files
    ### and overwrote the default versions in $UpgradeFiles. For example, your custom/production 
    ### web.config and appsettings.json are already in the '2.3.1_Modified' directory referenced below

    ### NOTE: POWERSHELL SESSION MUST BE RUN AS ADMINISTRATOR ###

    # Define folders for various upgrade activities
    $ProductionWebsite = 'C:\PowerShellUniversal\Website' # IIS website folder 
    $ProductionPSUFolder = "$env:ProgramData\UniversalAutomation" # Path to PSU UA folder
    $UpgradeFiles = 'C:\Users\User01\Desktop\2.3.1_Modified' # Holding place for upgrade files
    $TempBackup = 'C:\Users\User01\Desktop\PSU_Bkup' # Folder to store previous version file (website, DB, etc.)

    # Unblock all upgrade files
    Get-ChildItem $UpgradeFiles -Recurse | ForEach-Object { Unblock-File $_.FullName }

    # Setup backup folders if non-existent
    $SubFolders = @('Website','UniversalAutomation')
    If(-Not (Test-Path $TempBackup)){
        New-Item $TempBackup -ItemType Directory | Out-Null
    } Else {
        Remove-Item "$Tempbackup\*" -Recurse -Force # Cleanup any pre-existing folders/files
    }

    # Check for subfolder targets and create them if not found
    Foreach($Entry in $SubFolders){
        $FolderPath = Join-Path $TempBackup $Entry
        If (-Not(Test-path $Folderpath)){
            New-Item $FolderPath -ItemType Directory | Out-Null
        }
    }

    # Stop PSU IIS related dependencies
    $AppPool = '<PSU AppPool Name>'
    $Website = '<PSU Website Name>'
    Stop-WebAppPool -Name $AppPool
    Stop-Website -Name $WebSite -Confirm:$False

    # Check/Kill process if it is still running after stopping AppPool
    $ProcessName = 'Universal.Server'
    If(Get-Process $ProcessName){
        Stop-Process $ProcessName -Force
    }

    # Copy backup files
    Copy-Item -Path "$ProductionWebsite\*" -Destination "$TempBackup\Website" -Recurse -Force
    Copy-Item -Path "$ProductionPSUFolder\*" -Destination "$TempBackup\UniversalAutomation" -Recurse -Force

    # Remove all PSU files from current Website, new files will be copied in next step
    Remove-item "$ProductionWebsite\*" -Recurse -Force

    # Copy upgrade files to $ProductionWebsite
    Copy-Item -Path "$UpgradeFiles\*" -Destination $ProductionWebsite -Recurse -Force

    # Start AppPool and Website
    Start-WebAppPool -Name $AppPool
    Start-Website -Name $WebSite

Obvious disclaimer about test, Test, TEST! before just running the above.

4 Likes