Add grasshopper plugins to Rhino Compute when hosting it up with IIS

Hello,

I have been trying to set up Rhino Compute on IIS according to the new deployment guide available. What I have not been able to figure out is how to add custom grasshopper plugins in this configuration. Is there any available resources on this?

Best regards,

Frank

1 Like

I’m also having troubles with getting plugins to work properly after following the guide Deployment to Production Servers with C#, VB. Do you have any suggestions or documentation on this? @fraguada @stevebaer

Can you open Rhino on the production server and install the plugin or add-on?

This is what I’ve tried so far. I have validated that the setup works by running a grasshopper script which does not use any libraries. In this case it works perfectly.

I have installed the plugins by placing the files in the grasshopper libraries folder in the Administrator user. With the previous setup I did this and then just reset rhino.compute and then it worked.

Since the process seems to run in the background I tried resetting the AWS instance instead but it does not seem to work. After some research I found that the compute.geometry instances is run from user RhinoComputeAppPool so I tried placing the plugin files in the libraries folder in this user and then rebooting the AWS instance but this also does not seem to work.

I’m running into the same issue:

This is the response of calling compute running locally with weaverbird installed:

This is the response of calling compute in the VM with weaverbird installed via package manager, using the same definition:

Glad to provide any aditional info if useful to fix this.

I managed to solve it. Happy to provide more info if you need.

2 Likes

thanks for the tip @victorwanderleyb. @fraguada @AndyPayne can you please confirm that Victor solution is the right way to go about this?

1 Like

I’m looking into this and will report back as soon as we have a preferred method for this.

2 Likes

I’ve been having the same issue as well, and managed to partially solve it! Still not able to load all my custom components but some plugins are working;

  • copied my “Users/Administrator/appdata/…/grasshopper/libraries” folder to “Users/RhinoComputeAppPool/…/grasshopper/libraries” folder,
  • re-installed the bootstrap script !
  • rebooted the instance
1 Like

@dadandroid @coroush @victorwanderleyb I wanted to provide a little explanation as to what was happening when trying to install 3rd party plugins and how we’ve decided to manage that process.

As @victorwanderleyb stated in his other thread, the bootstrap script was setup to create the RhinoComputeAppPool which is what IIS is using to run rhino.compute.exe when a request is made. His solution would technically work, but we do not recommend setting the identity of the RhinoComputeAppPool using the Administrators login credentials. Elevating the rhino.compute process to the Administrator level simply creates security issues that we do not need or want.

The alternative that we have come up with is to have the bootstrap script create a new local user account, called RhinoComputeUser. The bootstrap script will generate a new unique password for this account and then add this user to the RDP group. It will also assign this identity to the RhinoComputeAppPool so that when IIS runs rhino.compute.exe, it will look like it’s being run from that new users account.

When the bootstrap script now finishes, you’ll see the following message:

To install third party plugins follow these steps
  1) Log into your VM using these credentials (write these down)
     User Name: RhinoComputeUser
     Password: #This will be some unique password generated by the bootstrap script
  2) Install plugins using the Rhino package manager or
  3) Copy/paste plugin files to C:\Users\$localUserName\AppData\Roaming\Grasshopper\Libraries
  4) Restart the VM

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

So, basically you’ll want to save the user name RhinoComputeUser and password included at the end of the script somewhere on your computer. Log out of the VM (after running the bootstrap script) and log back in using those new credentials. Install any 3rd party plugins that you might want using the same steps you would normally take. Finally, restart the VM.

Please let us know if this makes sense and/or if you have any problems moving forward.

3 Likes

Thanks Andy!

Hi all,

I was thinking about trying to compile the C# code directly on the VM to avoid having to send the modules to the VM when we make updates to the code. Have any of you tried it yourselves, or do you see any potential problems with doing this?

Erik

Hi Erik. Yes, this could work. You would need to install Visual Studio on the VM and pull down the repo in order to build the latest code. You’ll want to use the “Publish” option for each project (rhino.compute and compute.geometry), rather than simply building the projects like you do for debugging. Before overwriting any of the rhino.compute or compute.geometry build files, you’ll also want to stop the IIS service and then make sure to restart it once you’ve replaced the file. But, it should work. That’s basically how I did it while I was trying out how to deploy it with IIS in the first place :slight_smile:
Alternatively, I did just update the deployment guide with a section on only updating either Rhino and/or Rhino.Compute. These steps should only be done if you’ve already got a working setup with IIS… and it will only update Rhino and/or the compute files. These scripts are fairly new, so let me know if you run into any troubles if you follow these steps, rather than building it yourself.