Can you host PowerShell Universal with a provider such as Ionos or GoDaddy rather than using Azure. They both support ASP / .Net Core apps which I believe PU is?
If so any recommendations and are there any instructions specific to installing / setting it up with a hosting provider such as this rather than using say Azure?
Product: PowerShell Universal
PSU is just a standard ASP.NET Core Web App so anywhere one of those can be hosted, PSU can be hosted.
I don’t have specific experience with these providers.
Tried it with both GoDaddy and IONOS but couldn’t get it to work, but found both of them as providers very limited. GoDaddy had no settings in interface relating to .NET Core to choose versions and upon further research seems others report problems getting apps running with them. IONOS website even more limited, no access to any IIS or ASP/.NET settings meaning very hard to configure anything. Think I need to look at better hosts. Some rough instructions as to how you would install / configure it to run with a host like this would be useful, if I get it working I will create some for you. Upload the zip and extracting files is obviously first step, after that I need to explore website of whichever provider I choose.
It is not quite as simple as that however - as I am finding out after hours of trying different providers…
- PSU runs as 64-bit (x64) and most shared hosting is 32-bit (x86)
- It won’t run on shared hosting as it requires elevated permission to run (apparently)
So looks like I would actually need dedicated hosting rather than shared hosting unless there are any shared providers who are different than the most and offer x64 and possibly elevated permissions.
My research continues…
Update 23/12/22 19:06:
After signing up and trying multiple hosting providers where either it would fail to run at all (because they wouldn’t support 64-bit apps but didn’t make it clear on website before signing up!), or where it would install okay and show me logon screen but not let me login (Bad username or password) and would show multiple errors in log such as “Unhandled exception. System.IO.IOException: The process cannot access the file ‘C:\ProgramData\UniversalAutomation\database-log.db’” and various other permission related errors.
However I have now finally found a hosting provider where it installed first time (as easy as uploading the zip file to the hosting space and then clicking a button to extract the files), and this time without having to then open a support ticket to ask the provider to switch application pool to 64-bit!. And it just worked, I could login straight away and most things worked.
Encountered a few errors such as “Request failed with status code 405” when trying to save dashboard or settings changes which I have now resolved and will put details on how I fixed later, but so far all working well and hosting is well priced.
I will do a list of all providers I have tried with full notes at some point in next few days for anyone else reading who is looking for hosting solutions
The below table shows all the hosting companies I have either tested or at least contacted re hosting of PowerShell Universal and my experiences with each.
||Didn’t work, very limited access to ASP / IIS / .NET Core settings in the version of Plesk they use for Shared Windows Hosting. FTP slow. Support useless. Shared hosting is locked down quite tightly so suspect it is permissions related.
||Couldn’t get it to work, hosting interface very limited, only very basic settings for choosing .NET version and application path, no IIS settings etc. Support useless. Shared hosting is locked down quite tightly so suspect it is permissions related.
||They don’t support 64-bit applications.
||Would only support 64-bit applications on more expensive Enterprise hosting packages which they do clearly state in knowledgebase unlike most other providers – NOT TESTED.
||Website indicates they only support older versions of .NET Core – NOT TESTED.
||Asked them twice if they support 64-bit apps and both times they didn’t answer question and just told me which versions of .NET they supported, therefore didn’t bother testing!
||Don’t support 64-bit applications or those which require elevated permissions or use technologies such as PowerShell etc on shared hosting packages, would have to pay more and use one of their Hyper-V hosting packages. Support were very helpful though.
||They do support 64-bit and support are very responsive – NOT TESTED AS BY THIS POINT HAD FOUND NETCETERA BELOW WHICH WORKED, HAD GREAT SUPPORT AND WAS A GOOD PRICE
||“Yes, we support 64-bit .Net Core apps. We currently support .Net Core 1.0, 1.1, 2.0, 2.1, 2.2, 3.0 and 3.1, as well as .Net 5.0 and 6.0. We will be releasing .Net 7.0 support in the next few days.” – NOT TESTED AS BY THIS POINT HAD FOUND NETCETERA BELOW WHICH WORKED, HAD GREAT SUPPORT AND WAS A GOOD PRICE
|WHUK (Webhosting UK)
||Supports 64-bit and .NET Core 6/7 – NOT TESTED AS BY THIS POINT HAD FOUND NETCETERA BELOW WHICH WORKED, HAD GREAT SUPPORT AND WAS A GOOD PRICE
||Supports 64-bit apps and all version of .NET Core including 6/7 – NOT TESTED AS BY THIS POINT HAD FOUND NETCETERA BELOW WHICH WORKED, HAD GREAT SUPPORT AND WAS A GOOD PRICE
|Winhost / DiscountASP .NET
||“By default, the application pools of the sites are set to 32-bit mode, but we can set it to 64-bit if you request us to do so. Once the application pool mode is set to 64-bit mode, you will be able to run only 64-bit application on your site.” – NOT TESTED AS BY THIS POINT HAD FOUND NETCETERA BELOW WHICH WORKED, HAD GREAT SUPPORT AND WAS A GOOD PRICE. N.B. These two are put together as despite different websites, same support person responded from both companies and upon checking they have same parent company
||Initially didn’t work due to 64-bit issue but support soon changed IIS changed application pool to 64 bit which got PSU logon page showing but couldn’t login (Bad username or password). After some back and forwards with support and proving it worked with another provider (netcetera below) it turns out it was because they didn’t support PowerShell on shared hosting and I would need VPS hosting instead.
||Uses Plesk and is the first one which actually seems to have full access to all the features including all the .NET Core functionality. Installation was easy, just uploaded zip file via web interface and clicked to unzip it. Website worked first time - no adjustments needed to support 64-bit app! - and logged in fine. Support are first class and responded within minutes every time, very willing to help. Good knowledgebase and generally seem to keep up with hosting technologies such as ASP .NET Core versions etc.
The clear winner here was netcetera and I am currently using the Solo Windows Hosting plan @ £2.99 a month which is potentially a much cheaper solution than using Azure - UK based Managed Windows Hosting Packages - Netcetera
It provides full ASP.NET and .NET Core hosting with FULL TRUST which I think is a key point here as a lot of hosting doesn’t provide this level on shared hosting and is why you can’t host and run PowerShell Universal with them. It also provides full access to all the .NET toolkit features via Plesk again unlike a lot of providers.
The only error I had was “Request failed with status code 405” when trying to save dashboard changes or trying to save changes to some settings such as Security > Authentication. The solution to this was quickly advised by netcetera support (literally within about 5 minutes) and involves the below:-
Edit the web.config file and add in the below entries:
<remove name="WebDAVModule" />
<remove name="WebDAV" />
As per article here - https://support.plesk.com/hc/en-us/articles/360008566053-PUT-HTTP-requests-fail-on-a-domain-on-a-Plesk-for-Windows-server-HTTP-Error-405-Method-Not-Allowed-
This immediately resolved the problem and so far everything else I have tested is working fine.
Hope this information may be useful to others looking for hosting providers for PowerShell Universal
(Sorry Noob question)
Relating to my post Installing PowerShell Universal on an on-prem Windows management server that has third party CMDLETS installed (vCenter, Exchange, SQL, Hyper-V) - #4 by wsl2001
Would i then instead of reverse proxying be able to use this solution? But then how would the hosting platform render/emulate powershell commands on the actual window server side?
when you install PSU on a machine using .msi or using IIS that machine becomes the hosting machine and you can work on publish it as www.whatever.domain thru a revers proxy or what ever you choose.
since psu is installed on that machine it will have access to all powershell modules you have installed on the machine.
for example if you have a powershell module that deals with Vcenter installed you can then wrap any cmdlet you need arround a javasript element like a button for example so when u click it the wrapped code will be executed.