Trouble following Compute Deployment tutorial

Hi guys!
@will @stevebaer @AndyPayne

I have trouble following the updated iis server compute tutorial at https://developer.rhino3d.com/guides/compute/deploy-to-iis/

I’m stuck when trying to send a definition over with the hops component, it just errors out


this doesn’t happen when I let hops solve locally

the script I’m trying to send is just this:
image

my grasshopper settings are configured like this
image

I started an aws t2.micro instance and it is running with the suggested ports wide open

the bootstrap script finished successfully, with the variables set
image

/activechildren endpoint is reachable, briefly returns a “1”, after that only returns “0”
/healthcheck returns “Healthy”
/version is not reachable

i checked around a bit on the server and found two logs in C:\Users\RhinoComputeAppPool\AppData\Local\Temp\Compute\Logs not sure if they are helpful, here is one of them:

{"Timestamp":"2022-01-26T17:27:32.2148936+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-26T17:27:32.5274278+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-26T17:27:32.5274278+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-26T17:27:32.5899442+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-26T17:27:38.5749209+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}
{"Timestamp":"2022-01-26T18:48:41.1782877+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-26T18:48:41.4751726+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-26T18:48:41.4751726+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-26T18:48:41.5532849+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-26T18:48:44.5064259+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}
{"Timestamp":"2022-01-26T19:10:22.6007602+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-26T19:10:22.9288580+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-26T19:10:22.9445001+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-26T19:10:23.4288111+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-26T19:10:28.3502845+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}
{"Timestamp":"2022-01-26T19:21:51.9825098+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-26T19:21:52.2167932+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-26T19:21:52.2323975+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-26T19:21:52.4198325+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-26T19:21:57.2303647+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}

Here is the other one

{"Timestamp":"2022-01-27T08:05:53.4682430+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-27T08:05:53.7026043+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-27T08:05:53.7026043+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-27T08:05:53.9838597+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-27T08:05:58.9682194+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}
{"Timestamp":"2022-01-27T08:20:00.3125211+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-27T08:20:00.5626478+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-27T08:20:00.5626478+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-27T08:20:00.7502305+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-27T08:20:06.3465767+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}

Thanks for reporting this. I am aware of this issue and am investigating. I’ll report back shortly.

@blind The errors seen below are typically indicative that there is a problem with Rhino getting a valid license.

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.

I’m wondering if there could be a typo when you entered your Core-Hour billing Auth Token, or how it was stored in the environment variable. Here’s what I would recommend. First, goto this guide and follow the instructions on retrieving your Auth Token from the Rhino portal. Once you see your Auth Token displayed on the screen, click the “Copy” button to copy the entire string of text.

Next, go into your VM and click on the search bar and start typing “Environ”. You should see a link that says “Edit the system environment variables”. Click that and in the System Properties dialog click on the button at the bottom which says Environment Variables. In the System Variables list scroll down till you see the variable RHINO_TOKEN. Click on that row and select Edit. In the Variable Value input, replace the existing string with that you just copied from the Rhino portal.

Restart your AWS instance and then try to hit the /activechildren endpoint. Hopefully at this point, you will see an integer value greater than zero.

thanks so far @AndyPayne,

unfortunately this didn’t solve the problem.
Just to be sure I also generated a new Rhino Token and started a new server Instance with that, triple checked it, but still cant connect hops to it or get any /activechildren.

log shows the same error

{"Timestamp":"2022-01-27T15:48:35.6493399+00:00","Level":"Information","MessageTemplate":"Compute {ComputeVersion}, Rhino {RhinoVersion}","RenderedMessage":"Compute \"1.0.0.0\", Rhino \"7.14.22010.17001\"","Properties":{"ComputeVersion":"1.0.0.0","RhinoVersion":"7.14.22010.17001"}}
{"Timestamp":"2022-01-27T15:48:35.9149690+00:00","Level":"Information","MessageTemplate":"Configuration Result:\n{0}","RenderedMessage":"Configuration Result:\n\"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry\"","Properties":{"0":"[Success] Name compute.geometry\r\n[Success] DisplayName rhino.compute\r\n[Success] Description rhino.compute\r\n[Success] ServiceName compute.geometry","SourceContext":"Topshelf.HostFactory"}}
{"Timestamp":"2022-01-27T15:48:35.9305917+00:00","Level":"Information","MessageTemplate":"{0} v{1}, .NET Framework v{2}","RenderedMessage":"\"Topshelf\" v\"4.1.0.172\", .NET Framework v\"4.0.30319.42000\"","Properties":{"0":"Topshelf","1":"4.1.0.172","2":"4.0.30319.42000","SourceContext":"Topshelf.HostConfigurators.HostConfiguratorImpl"}}
{"Timestamp":"2022-01-27T15:48:35.9774661+00:00","Level":"Information","MessageTemplate":"Launching RhinoCore library as {User}","RenderedMessage":"Launching RhinoCore library as \"RhinoComputeAppPool\"","Properties":{"User":"RhinoComputeAppPool"}}
{"Timestamp":"2022-01-27T15:48:43.1337198+00:00","Level":"Error","MessageTemplate":"An exception occurred","RenderedMessage":"An exception occurred","Exception":"System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.\r\n   at Rhino.Runtime.InProcess.RhinoCore.InternalStartup(Int32 argc, String[] argv, StartupInfo& info, IntPtr hostWnd)\r\n   at Rhino.Runtime.InProcess.RhinoCore..ctor(String[] args, WindowStyle windowStyle, IntPtr hostWnd)\r\n   at compute.geometry.OwinSelfHost.Start(HostControl hctrl) in /home/runner/work/compute.rhino3d/compute.rhino3d/src/compute.geometry/Program.cs:line 106\r\n   at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl)\r\n   at Topshelf.Hosts.ConsoleRunHost.Run()","Properties":{"SourceContext":"Topshelf.Hosts.ConsoleRunHost"}}

Ok. This still seems really odd. Can you try one thing for me. The bootstrap script automatically installs Rhino on that machine. Can you try to launch Rhino.exe on that machine (it should have placed a shortcut on the desktop). If the RHINO_TOKEN is set, then Rhino should start straightaway without asking for a license. That might help us narrow down where the issue might be coming from.

Thanks so much for taking the time.
Initially rhino wouldn’t start, so I generated another new token and set the environment variable to that and everything works great now.
So I guess I did screw up with the Tokens after all

:sweat:

Great. I’m glad its working now. I was running out of ideas :slight_smile:

Sorry @AndyPayne, me again.

I tried following the updated tutorial on an aws server instance described here:

and ran into a couple issues:

Executing the bootstrap script to install the iis throws errors when trying to create the new “RhinoComputeUser”-User
Rerunning the script did manage to create that user though.
However after that I can not get the server to respond to hops requests. The used scripts do work perfectly fine with a server setup with the bootstrap file from two months ago.

Also the /healthcheck and /activechildren endpoints now respond with “missing API token”. This could be intended behaviour though I guess.

Could you confirm that the setup should be working correctly in it’s current form?

Hi @blind. This is strange. Can you provide any error logs when you say it couldn’t create the RhinoComputeUser? But, then you re-ran the script and it did work? I’m confused a bit on this part.
Also, how are you sending your GET request for /healthcheck or /activechildren? Are you simply using Google Chrome? Or something like Postman? I think the reason you’re getting an error is that the production server required you to input an API Key as part of the bootstrap script. This was some arbitrary string that you created which authenticates your requests to the server. You need to include this API Key as part of the header to your requests so that the production server knows it’s you who is making a valid request and not just some random HTTP traffic (or a hacker). I recommend using an app like Postman, to send your requests because you have more control over the header information. Something like the image below should help you get started.

Hi @AndyPayne, thanks again for taking the time.

I set up another aws t2.medium server 2019 base instance for testing this again. Still can’t figure out what I did wrong.

Here is the log of the setup, no reported errors there.

**********************
Windows PowerShell transcript start
Start time: 20220514114519
Username: [redacted]\Administrator
RunAs User: [redacted]\Administrator
Configuration Name: 
Machine: [redacted] (Microsoft Windows NT 10.0.17763.0)
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process ID: 6368
PSVersion: 5.1.17763.2867
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.2867
BuildVersion: 10.0.17763.2867
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is C:\Users\Administrator\Desktop\bootstrap1.log
PS C:\Users\Administrator> $F="/bootstrap.zip";$T="$($Env:temp)\tmp$([convert]::tostring((get-random 65535),16).padleft(4,'0')).tmp"; New-Item -ItemType Directory -Path $T; iwr -useb https://raw.githubusercontent.com/mcneel/compute.rhino3d/master/script/production/bootstrap.zip -outfile $T$F; Expand-Archive $T$F -DestinationPath $T; Remove-Item $T$F;& "$T\boostrap_server.ps1" 


    Directory: C:\Users\ADMINI~1\AppData\Local\Temp\2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        5/14/2022  11:45 AM                tmp7aec.tmp
  # # # # # # # # # # # # # # # # # # # # #
  #                                       #
  #       R H I N O   C O M P U T E       #
  #                                       #
  #    B O O T S T R A P   S C R I P T    #
  #                                       #
  # # # # # # # # # # # # # # # # # # # # #
Root Script Path: C:\Users\Administrator\AppData\Local\Temp\2\tmp7aec.tmp

===>  Set environment variables

Setting environment variable: RHINO_TOKEN=***
Setting environment variable: RHINO_COMPUTE_KEY=64[redacted]
Setting environment variable: RHINO_COMPUTE_URLS=http://+:80

===>  Download latest Rhino 7


===>  Installing Rhino


===>  Configuring URL reservation (80 and 443)

Ok.
Ok.

===>  Installing IIS Role Services

Determining if all necessary IIS components have been installed
IIS-WebServerRole missing - installing

Path   :
Online : True

IIS-HttpRedirect missing - installing

Path   :
Online : True

NetFx4Extended-ASPNET45 missing - installing

Path   :
Online : True

IIS-NetFxExtensibility45 missing - installing

Path   :
Online : True

IIS-LoggingLibraries missing - installing

Path   :
Online : True

IIS-RequestMonitor missing - installing

Path   :
Online : True

IIS-HttpTracing missing - installing

Path   :
Online : True

IIS-IIS6ManagementCompatibility missing - installing

Path   :
Online : True

IIS-BasicAuthentication missing - installing

Path   :
Online : True

IIS-WindowsAuthentication missing - installing

Path   :
Online : True

IIS-ApplicationInit missing - installing

Path   :
Online : True

IIS-ISAPIExtensions missing - installing

Path   :
Online : True

IIS-ISAPIFilter missing - installing

Path   :
Online : True

IIS-ASPNET45 missing - installing

Path   :
Online : True

WAS-WindowsActivationService missing - installing

Path   :
Online : True

WAS-ConfigurationAPI missing - installing

Path   :
Online : True

WCF-HTTP-Activation45 missing - installing

Path   :
Online : True

WCF-TCP-Activation45 missing - installing

Path   :
Online : True

WCF-Pipe-Activation45 missing - installing

Path   :
Online : True


Success       : True
RestartNeeded : No
FeatureResult : {}
ExitCode      : NoChangeNeeded


Success       : True
RestartNeeded : No
FeatureResult : {Message Queuing, Message Queuing Server, Message Queuing Services, Message Queuing (MSMQ) Activation}
ExitCode      : Success


===>  All of the Necessary IIS Role Services have been installed


===>  Download and unzip latest build of compute from https://nightly.link/mcneel/compute.rhino3d/actions/artifacts/240222036.zip



    Directory: C:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        5/14/2022  11:57 AM                temp

===>  Download ASP.NET Core 5.0 Hosting Bundle


dotnet-hosting-5.0.13-win.exe downloaded


===>  Installing ASP.NET Core 5.0 Hosting Bundle

dotnet-hosting-5.0.13-win.exe installed

===>  Restarting IIS services

The following services are dependent on the Windows Process Activation Service service.
Stopping the Windows Process Activation Service service will also stop these services.

   Net.Msmq Listener Adapter
   Net.Pipe Listener Adapter
   Net.Tcp Listener Adapter
   World Wide Web Publishing Service

The Net.Msmq Listener Adapter service is stopping.
The Net.Msmq Listener Adapter service was stopped successfully.

The Net.Pipe Listener Adapter service is stopping.
The Net.Pipe Listener Adapter service was stopped successfully.

The Net.Tcp Listener Adapter service is stopping.
The Net.Tcp Listener Adapter service was stopped successfully.

The World Wide Web Publishing Service service is stopping.
The World Wide Web Publishing Service service was stopped successfully.

The Windows Process Activation Service service is stopping.
The Windows Process Activation Service service was stopped successfully.
The World Wide Web Publishing Service service is starting.
The World Wide Web Publishing Service service was started successfully.

===>  Creating a new user identity

VERBOSE: Performing the operation "Create new local user" on target "RhinoComputeUser".

AccountExpires         :
Description            : User identity passed to IIS RhinoComputeAppPool
Enabled                : True
FullName               :
PasswordChangeableDate : 5/14/2022 11:58:22 AM
PasswordExpires        :
UserMayChangePassword  : True
PasswordRequired       : False
PasswordLastSet        : 5/14/2022 11:58:22 AM
LastLogon              :
Name                   : RhinoComputeUser
SID                    : [redacted]
PrincipalSource        : Local
ObjectClass            : User


===>  Adding user to RDP user group


===>  Creating application pool


===>  Removing default website


===>  Creating new rhino.compute site


Name         : Rhino.Compute
ID           : 2
State        : Started
PhysicalPath : C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\rhino.compute
Bindings     : Microsoft.IIs.PowerShell.Framework.ConfigurationElement


===>  Granting application pool permissions on compute directories

Successfully processed 316 files; Failed processing 0 files
Successfully processed 20 files; Failed processing 0 files

===>  Setting environment variable for log paths

Setting environment variable: RHINO_COMPUTE_LOG_PATH=C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\rhino.compute\logs

===>  Starting rhino.compute site

Congratulations! All components have now been installed.

To install third party plugins follow these steps
  1) Log into your VM using these credentials (write these down)
     User Name: RhinoComputeUser
     Password: [redacted]
  2) Install plugins using the Rhino package manager or
  3) Copy/paste plugin files to C:\Users\RhinoComputeUser\AppData\Roaming\Grasshopper\Libraries
  4) Restart the VM

Please save the User Name and Password above for your records!


PS C:\Users\Administrator> net user

User accounts for \\[redacted]

-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
RhinoComputeUser         WDAGUtilityAccount
The command completed successfully.
PS C:\Users\Administrator> Stop-Transcript
**********************
Windows PowerShell transcript end
End time: 20220514115913
**********************

After running the script no new Windows user was showing up in C:/Users/, the RhinoComputeUser did however show up when running “net user” in powershell.

I was aware I needed to set an API key during setup. I just noticed that the /activechildren and /healthcheck endpoints didn’t require the key before ~Jan 2022, sorry for the confusion.
Host replies correctly to those when setting the API key in the header like you showed.

On the host:
I confirmed that the API-key and the Rhino token are set correctly in the environment variables.
Rhino is starting.
All ports were set to be open.

On the client machine I’m running Rhino 7.18, hops 0.13.1

result of a hops request within grasshopper:

script is this:

Hi @blind. I haven’t forgotten about this question. There are a couple of changes that were made to the code base recently which caused some of the issues you’re seeing right now. I’m working on a fix and hope to have a new solution soon.

1 Like

(post deleted by author)