New Universal install - A few issues

Hey all

few wee issues that are hopefully straight forward solutions

  1. picked up a license for universal last week, but when trying to install the license but when trying to install the license via the dashboard, the OK button either doesn’t work or I get an error that says “Failed it install license” (or something to that effect).

  2. I also noticed that at the default login page after a fresh install, using “Admin” and any password doesn’t always redirect to the logged in page but if i manually browse to https://localhost:5000/admin it works fine.

  3. I played about a wee touch last week with hooking up active directory for logging in but haven’t had much joy with it so rather than rip out everything I’d done I just uninstalled and did a fresh install of Universal but when I do the fresh install it pulls back in all the changes I made to the authentication so I’m assuming they’re stored in a config file somewhere?

  4. on the identities page, if I remove an identity that I added it tells me it removed it successfully but it doesn’t actually

Not sure if I’ve somehow made a message of the install, although I’m not sure how since its all automated.

any suggestions on any of the above?

Scott

.1. Didnt have an issue with licences myself, make sure to copy all the licence you received the whole thing. If it still doesnt work you might need to contact adam.

.3. Universal has folders situated inside the c:\programdata\ folder, likley in here.

1 Like
  1. Are you trying to use Windows Authentication for Logging in? If so, that requires IIS, not the MSI Install.

Check here: https://docs.ironmansoftware.com/config/hosting-iis
And then here: https://docs.ironmansoftware.com/config/hosting-iis-windowsauth

For 2, can you please open your dev tools and see if there is an error when this happens? F12
For 4, can you please send me a log after trying that? C:\ProgramData\PowerShellUniversal

Yeah I was, I realised after playing about that I needed to host in IIS for that to work :slight_smile:

Although thats another topic entirely, for what ever reason its just not playing ball. Followed the hosting-iis page to the letter and its just not liking me.

the jist of this is I hate IIS

Hey

I removed all the program data folders before seeing this :frowning:
I’ll try and recreate it :slight_smile:

Adam sorted out my license issue, seemed I was missing a bit :slight_smile:

Made progress getting universal into IIS but I just get hit with this…


After having a rumage through logs, I came across this

2020-06-22 02:32:30 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2020-06-22 02:32:30 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
    Worker count: 20
    Listening queues: 'default'
    Shutdown timeout: 00:00:15
    Schedule polling interval: 00:00:15
2020-06-22 02:32:31 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e successfully announced in 221.0649 ms
2020-06-22 02:32:31 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2020-06-22 02:32:31 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e all the dispatchers started
info: UniversalAutomation.JobProcessManager[0]
      Starting C:\Program Files\PowerShell\7\pwsh.exe with command line -NoProfile -NoExit -Command "& { [System.Reflection.Assembly]::LoadFrom('C:\inetpub\Universal\Host.dll') | Out-Null; [UniversalHost.AgentService]::StartApi(50079, 5636) }"
info: UniversalAutomation.JobProcessManager[0]
      Starting job using Process.
fail: Universal.Server.Services.DashboardAssetManager[0]
      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v2\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.
fail: Universal.Server.Services.DashboardAssetManager[0]
      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v3\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.
2020-06-22 02:32:36 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2020-06-22 02:32:36 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
    Worker count: 20
    Listening queues: 'default'
    Shutdown timeout: 00:00:15
    Schedule polling interval: 00:00:15
2020-06-22 02:32:36 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 successfully announced in 0.1622 ms
2020-06-22 02:32:36 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2020-06-22 02:32:36 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 all the dispatchers started
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://127.0.0.1:42247
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\inetpub\Universal
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
      Failed to determine the https port for redirect.
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
      An unhandled exception has occurred while executing the request.
System.Exception: Invalid license specified.
   at UniversalLicensing.LicenseManager.DecodeLicense(String licenseText)
   at Universal.Server.Services.LicenseService.Get() in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 67
   at Universal.Server.Services.LicenseService.GetLicenseStatus(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 128
   at Universal.Server.Services.LicenseService.IsLicensed(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 121
   at Universal.Server.Services.LicenseService.IsLicensedFeature(Feature feature) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 94
   at Universal.Server.Services.ApiProxy.ExecuteAsync(HttpContext httpContext) in E:\src\universal\src\Universal.Server\Services\ApiProxy.cs:line 109
   at Universal.Server.Middleware.RoutingMiddleware.Invoke(HttpContext httpContext, IPolicyEvaluator policyEvaluator) in E:\src\universal\src\Universal.Server\Middleware\RoutingMiddleware.cs:line 56
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[3]
      An exception was thrown attempting to execute the error handler.
System.Exception: Invalid license specified.
   at UniversalLicensing.LicenseManager.DecodeLicense(String licenseText)
   at Universal.Server.Services.LicenseService.Get() in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 67
   at Universal.Server.Services.LicenseService.GetLicenseStatus(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 128
   at Universal.Server.Services.LicenseService.IsLicensed(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 121
   at Universal.Server.Services.LicenseService.IsLicensedFeature(Feature feature) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 94
   at Universal.Server.Services.ApiProxy.ExecuteAsync(HttpContext httpContext) in E:\src\universal\src\Universal.Server\Services\ApiProxy.cs:line 109
   at Universal.Server.Middleware.RoutingMiddleware.Invoke(HttpContext httpContext, IPolicyEvaluator policyEvaluator) in E:\src\universal\src\Universal.Server\Middleware\RoutingMiddleware.cs:line 56
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
fail: Microsoft.AspNetCore.Server.Kestrel[13]
      Connection id "0HM0MM2T2DUT1", Request id "0HM0MM2T2DUT1:00000001": An unhandled exception was thrown by the application.
System.Exception: Invalid license specified.
   at UniversalLicensing.LicenseManager.DecodeLicense(String licenseText)
   at Universal.Server.Services.LicenseService.Get() in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 67
   at Universal.Server.Services.LicenseService.GetLicenseStatus(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 128
   at Universal.Server.Services.LicenseService.IsLicensed(String productName) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 121
   at Universal.Server.Services.LicenseService.IsLicensedFeature(Feature feature) in E:\src\universal\src\Universal.Server\Services\LicenseService.cs:line 94
   at Universal.Server.Services.ApiProxy.ExecuteAsync(HttpContext httpContext) in E:\src\universal\src\Universal.Server\Services\ApiProxy.cs:line 109
   at Universal.Server.Middleware.RoutingMiddleware.Invoke(HttpContext httpContext, IPolicyEvaluator policyEvaluator) in E:\src\universal\src\Universal.Server\Middleware\RoutingMiddleware.cs:line 56
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 caught stopping signal...
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 All dispatchers stopped
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 caught stopped signal...
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 successfully reported itself as stopped in 0.2777 ms
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:ae493549 has been stopped in total 4.2264 ms
warn: Universal.Server.Services.SecurityProxy[0]
      Exception during stop.
System.NullReferenceException: Object reference not set to an instance of an object.
   at Universal.Server.Services.SecurityProxy.StopAsync() in E:\src\universal\src\Universal.Server\Services\SecurityProxy.cs:line 77
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e caught stopping signal...
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e caught stopped signal...
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e All dispatchers stopped
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e successfully reported itself as stopped in 0.0298 ms
2020-06-22 02:32:46 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:5636:fd1ed54e has been stopped in total 1.9437 ms

2 complains about this
System.Exception: Invalid license specified. But I’ve not specified a licence file yet because its not operational?
And one of these
System.NullReferenceException: Object reference not set to an instance of an object.

This is my web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
     <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <!-- <aspNetCore processPath=".\Universal.Server.exe" arguments="" forwardWindowsAuthToken="false" stdoutLogEnabled="true" stdoutLogFile=".\logs\log" hostingModel="OutOfProcess" /> -->
    <aspNetCore processPath="C:\inetpub\Universal\Universal.Server.exe" arguments="C:\inetpub\Universal\Universal.Server.dll --iis" forwardWindowsAuthToken="false" stdoutLogEnabled="true" stdoutLogFile=".\logs\log" hostingModel="InProcess" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 588ACF2E-9AE5-4DF1-BC42-BCE16A4C4EDE-->

Watching through Adam’s video, https://www.youtube.com/watch?time_continue=237&v=jKdGPAn4WzA&feature=emb_logo, and having a look at the example web.config file on the docs, https://docs.ironmansoftware.com/config/hosting-iis, they are slightly different but I’ve tried both variations in case that was my issue

Other than that, Everything I’ve got setup is identical to the docs on hosting Universal in IIS

Needed a Rubber Duck?

It looks like the invalid license is still configured. Can you verify that the license.ps1 file in C:\ProgramData\UniversalAutomation.universal is empty?

Can you also try deleting the database.db in the C:\ProgramData\UniversalAutomation folder?

The NullReference is an issue we’re looking at but it happens when the server is shutting down so I think that is fine for the moment. It’s likely not the issue preventing IIS from functioning.

A rubber duck? haha

Hey

Yeah the license file still looked to have the incomplete key in it so I’ve removed that as well as deleting the database.

Still getting this though
image

2020-06-22 03:07:44 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'

2020-06-22 03:07:44 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:

    Worker count: 20

    Listening queues: 'default'

    Shutdown timeout: 00:00:15

    Schedule polling interval: 00:00:15

2020-06-22 03:07:44 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 successfully announced in 109.1562 ms

2020-06-22 03:07:44 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...

2020-06-22 03:07:44 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 all the dispatchers started

info: UniversalAutomation.JobProcessManager[0]

      Starting C:\Program Files\PowerShell\7\pwsh.exe with command line -NoProfile -NoExit -Command "& { [System.Reflection.Assembly]::LoadFrom('C:\inetpub\Universal\Host.dll') | Out-Null; [UniversalHost.AgentService]::StartApi(50815, 6912) }"

info: UniversalAutomation.JobProcessManager[0]

      Starting job using Process.

fail: Universal.Server.Services.DashboardAssetManager[0]

      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v2\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.

fail: Universal.Server.Services.DashboardAssetManager[0]

      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v3\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.

2020-06-22 03:07:47 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'

2020-06-22 03:07:47 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:

    Worker count: 20

    Listening queues: 'default'

    Shutdown timeout: 00:00:15

    Schedule polling interval: 00:00:15

2020-06-22 03:07:47 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 successfully announced in 0.2944 ms

2020-06-22 03:07:47 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...

2020-06-22 03:07:47 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 all the dispatchers started

info: Microsoft.Hosting.Lifetime[0]

      Application started. Press Ctrl+C to shut down.

info: Microsoft.Hosting.Lifetime[0]

      Hosting environment: Production

info: Microsoft.Hosting.Lifetime[0]

      Content root path: C:\inetpub\Universal

warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]

      Failed to determine the https port for redirect.

info: UniversalAutomation.GroomService[0]

      Starting groom job.

info: UniversalAutomation.GroomService[0]

      Groom date is: 23/05/2020 14:08:02

info: UniversalAutomation.GroomService[0]

      Old jobs: 0

info: UniversalAutomation.GroomService[0]

      Finished groom job.

info: UniversalAutomation.GroomService[0]

      Starting groom job.

info: UniversalAutomation.GroomService[0]

      Groom date is: 23/05/2020 14:09:02

info: UniversalAutomation.GroomService[0]

      Old jobs: 0

info: UniversalAutomation.GroomService[0]

      Finished groom job.

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 caught stopping signal...

info: Microsoft.Hosting.Lifetime[0]

      Application is shutting down...

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 caught stopped signal...

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 All dispatchers stopped

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 successfully reported itself as stopped in 0.231 ms

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:43272b20 has been stopped in total 5.6979 ms

warn: Universal.Server.Services.SecurityProxy[0]

      Exception during stop.

System.NullReferenceException: Object reference not set to an instance of an object.

   at Universal.Server.Services.SecurityProxy.StopAsync() in E:\src\universal\src\Universal.Server\Services\SecurityProxy.cs:line 77

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 caught stopping signal...

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 caught stopped signal...

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 All dispatchers stopped

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 successfully reported itself as stopped in 0.0381 ms

2020-06-22 03:09:40 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:6912:dffec192 has been stopped in total 1.5284 ms

was waiting on the error log generating some content

Had another wee rummage about logs and the only obvious thing I can see is this…

2020-06-22T15:07:47.3621367+01:00  [ERR] The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v2\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values. (5a244316)
2020-06-22T15:07:47.4852519+01:00  [ERR] The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v3\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values. (eb264c55)

That’s a known error as well and doesn’t seem to affect anything. Another on the list to clean up.

Can you check out the stdout logs? In the web.config, you’ll see the path is pointing at .\logs\log. They should be relative to the website directory, I believe. You might need to switch to OutOfProcess to see these logs.

There is something we are missing here. It almost appears that the website is starting and immediately stopping. If you run the Universa.Server.exe outside of IIS, does it work?

Sure thing

changing to OutOfProcess and checking the logs it shows this…

2020-06-22 03:38:18 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2020-06-22 03:38:18 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
    Worker count: 20
    Listening queues: 'default'
    Shutdown timeout: 00:00:15
    Schedule polling interval: 00:00:15
2020-06-22 03:38:18 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:dc8a1a3f successfully announced in 105.3953 ms
2020-06-22 03:38:18 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:dc8a1a3f is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2020-06-22 03:38:18 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:dc8a1a3f all the dispatchers started
info: UniversalAutomation.JobProcessManager[0]
      Starting C:\Program Files\PowerShell\7\pwsh.exe with command line -NoProfile -NoExit -Command "& { [System.Reflection.Assembly]::LoadFrom('C:\inetpub\Universal\Host.dll') | Out-Null; [UniversalHost.AgentService]::StartApi(51419, 7608) }"
info: UniversalAutomation.JobProcessManager[0]
      Starting job using Process.
fail: Universal.Server.Services.DashboardAssetManager[0]
      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v2\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.
fail: Universal.Server.Services.DashboardAssetManager[0]
      The specified RequiredModules entry 'Universal' in the module manifest 'C:\inetpub\Universal\UniversalDashboard\Frameworks\v3\UniversalDashboard.psd1' is invalid. Try again after updating this entry with valid values.
2020-06-22 03:38:20 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2020-06-22 03:38:20 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
    Worker count: 20
    Listening queues: 'default'
    Shutdown timeout: 00:00:15
    Schedule polling interval: 00:00:15
2020-06-22 03:38:20 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:72b561ce successfully announced in 0.1117 ms
2020-06-22 03:38:20 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:72b561ce is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2020-06-22 03:38:20 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server <ServerName>:7608:72b561ce all the dispatchers started
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://127.0.0.1:28363
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\inetpub\Universal
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
      Failed to determine the https port for redirect.
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /admin
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /admin/index.9d59ee3f4cb17b02434c.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\UniversalAutomation\index.9d59ee3f4cb17b02434c.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      application/javascript
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /admin/1.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\UniversalAutomation\1.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /admin/2.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      application/javascript
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\UniversalAutomation\2.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      application/javascript
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /admin/logo.ico
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\UniversalAutomation\logo.ico
info: Universal.Server.Middleware.RoutingMiddleware[0]
      image/x-icon
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /login
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /login/index.css
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /login/index.4a0a6185c3eec0c246b0.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\Login\index.4a0a6185c3eec0c246b0.bundle.js
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\Login\index.css
info: Universal.Server.Middleware.RoutingMiddleware[0]
      application/javascript
info: Universal.Server.Middleware.RoutingMiddleware[0]
      text/css
info: Universal.Server.Middleware.RoutingMiddleware[0]
      /login/favicon.ico
info: Universal.Server.Middleware.RoutingMiddleware[0]
      C:\inetpub\Universal\Login\favicon.ico
info: Universal.Server.Middleware.RoutingMiddleware[0]
      image/x-icon
info: UniversalAutomation.GroomService[0]
      Starting groom job.
info: UniversalAutomation.GroomService[0]
      Groom date is: 23/05/2020 14:39:03
info: UniversalAutomation.GroomService[0]
      Old jobs: 0
info: UniversalAutomation.GroomService[0]
      Finished groom job.

I tried running Universal.Server.exe on its own and it outputs exactly the same as the log file pasted above.

Overall, the logs look good. When you run Universal outside of IIS and navigate to http://localhost:5000, can you login?

Morning Adam

Yeah, If i run it after the MSI installer or even from just the Universal.Server.exe I can get to http://localhost:5000 and login fine.

If anyone lands on this topic, we found that the problem was that IIS was unable to listen or serve on port 80 for some reason. We changed the port in IIS to 8080 and it worked. The final working web.config was something like this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
     <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="Universal.Server.exe" arguments="" forwardWindowsAuthToken="false" stdoutLogEnabled="true" stdoutLogFile=".\logs\log" hostingModel="OutOfProcess" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 588ACF2E-9AE5-4DF1-BC42-BCE16A4C4EDE-->

Scott is going to try and figure out why port 80 wasn’t working.

Was this running on a desktp or a dedicated server?

Dedicated server :slight_smile: