ASP.NET 5 Hosting
ASP.NET 5 Hosting has a new release and this one has a go-live license! As announced today, the RC1 is available and a new RC2 is coming in the future. The brand new version ASP.NET 5 (a.k.a ASP.NET vNext) can be developed and hosted on all three major platform – Windows, Linux and MacOS.
Getting started with ASP.NET 5 (TODO: Link to be updated with new Post for .NET tools) is not so hard after all and is definitely fun to play early. The biggest break through that comes to .NET and ASP.NET world is the capability to write and host anywhere.
Yes you can now develop and host a ASP.NET Web application – MVC or WebAPI even SignalR on any platform – Windows, Linux and MacOS. This has always been the de-facto standard for windows since long using Visual Studio (prior VS2015) but it can be fun on Linux and MacOS also using your favourite editors or Visual Studio Code.
Easy To Run ASP.NET 5 Website On IIS!
Going beyond demoware and experiments, to real applications, inevitably leads to thinking about hosting it somewhere – which, if your environment is Windows, most likely means IIS.
I have recently gone through quite some trouble getting it all to work, so I thought it might be useful to document and highlight some of the steps, which hopefully will save a bit of your time.
Run ASP.NET 5 Website On IIS – Adjusting Your Application
In order to be able to run on IIS, your application needs to include Microsoft.AspNet.IISPlatformHandler package. There is currently an 1.0.0-rc1-final version available which should be added as a dependency to your project.json.
You should then add the platform handler middleware to the Configure method in your Startup class:
If you are using the latest (RC1) ASP.NET 5 templates, then the ASP.NET 5 Web Application template already references theMicrosoft.AspNet.IISPlatformHandler package and even has the above line of code in the Startup class by default.
Publishing your application
First of all you need to publish your application. If you are really old school, you may want to do it from Visual Studio and its classic “Publish” dialog, but it will not do anything magical – all it will do is just call into the command line dnu tool.
So instead, you can call it yourself from the folder of your web application (you can also pass the path to the web application project if you wanna invoke dnu from anywhere) and save yourself a hassle of even opening Visual Studio (or maybe you are on a Unix and you don’t even have it).
dnu publish --runtime active
This command will publish your project and include the currently active runtime. You can obviously include a specific runtime too if that’s your intention, by passign its name. The publish command has plenty of other options such as for example specifying the source inclusion or the out path.
By default, the output path is bin/output in the same folder as your web application. The output can be xcopied to the server just like that.
The published source should have the following structure:
Inside the approot folder there will be a web.cmd file which can be used to start your app. You can also start it by simply getting into wwwroot and calling dnx web. Of course IIS knows nothing about all this, so you’ll need some extra IIS setup to make it understand the external DNX process.
Setting up IIS
The prerequisite in IIS is that the HttpPlatformHandler module needs to be installed (minimum version 1.2). This component is nothing ASP.NET 5 specific – it simply allows process management for external processes that listen for HTTP requests and proxies requests into it; in this case it will be dnx.exe but it might as well be something like node.exe.
Once you have published your ASP.NET 5 app (previous step), you can proceed to setting up IIS.
Create a new application, and set the .NET CLR version on application pool to No managed code. We’ll be calling into dnx.exeto start your application, rather relying on the classic w3wp process.
Point your website to the wwwroot folder inside your publish output (previous step) location – or wherever you copied it to. If you run the application pool using the application pool identity, you have to make sure that IIS_IUSRS has access to your publish folder.
If you navigate to your site now and everything just works, then great – you can stop reading this post as your job is done, but at this point, chances are things will not be working yet.
That wwwroot has a web.config file inside which should at this point look like this:
You may want to set that stdoutLogEnabled=“false” to true immediately cause you’d want to get the errors, normally written to stdout of a hidden process, to be redirected to the log file.
One possibility is that you see the following HTTP Error 500.19:
This is because at the global config level, the system.webServer/handlers section is locked. To unlock it, go to IIS Manager, select your server root in the left navigation tree, then choose “Configuration Editor” > type system.webServer/handlers in the section selection dropdown and press enter. Then choose “unlock section” from the right action pane.
Another (or next) potential issue that you may encounter, is that you see a blank page, that appears to be stuck loading forever. If that’s the case check the logs folder under the path defined in the web.config.
Most likely possibility is that dnx command is not being recognized. The reason for this is that the user used to run the IIS process doesn’t have it in the PATH. To combat this, you can do a few things:
- change the application pool user to a one that has DNX on the PATH (i.e. your own user account)
- add the DNX environment variables as a system-wide variables:
- DNX_HOME, should point to your DNX folder, for me it’s C:\Users\filip\.dnx
- DNX_PACKAGES, should point to your DNX packages folder, for me it’s C:\Users\filip\.dnx\packages
- DNX_PATH, should point to your DNVM cmd file, for me it’s C:\Users\filip\.dnx\bin\dnvm.cmd
If you choose this approach, you have to make sure that IIS_IUSRS has access to all the above folders too. Note that on IIS 10 you can also set environment variables specifically for the application pool.
- instead of using …\approot\web.cmd to start up your application, you can also hardcode a path to dnx in theprocessPath attribute of the httpPlatform inside web.config. If you do that, you also need to pass the web argument in the arguments attribute
Finally, there might some other issues not mentioned here, that you can identify through the log file. For example, perhaps you provided a custom path to the dnx.exe but have not provided the arguments (“web”). This type of error would simply show up in the log as the usage help for dnx.
Overall, I tried this process on IIS 7.5, IIS 8 and IIS 10 – and at the end it ran successfully everywhere
Looking for Cheap ASP.NET 5 Hosting?
We always very glad to help you! After make a research to find recommended ASP.NET 5 hosting for your ASP.NET 5 site, finally we choose ASPHostPortal as a winner for this category. Their team always ready to give the best services for their customers. Before that, please feel free to read the reviews about our ASP.NET 5 Hosting provider recommendation.
ASPHostPortal.com is a popular hosting company, who is committed to providing the most affordable world-class Windows ASP.NET hosting solutions for customers. The only focus of ASPHostPortal.com is Windows hosting, so its ASP.NET 5 hosting could come with the latest and stable Windows 2012 / Windows 2008 platform and many other key features.
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for the ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, .NET 5/4.6/4.5, ASP.NET MVC 6/5.2/5.1, Silverlight 6 and Visual Studio Lightswitch. Click here for more information.
Why ASPHostPortal the Best and Cheap ASP.NET 5 Hosting?
100% Focus on Microsoft Windows ASP.NET Shared Hosting
They are specialists in:
- Windows Server 2012 / 2008 Hosting
- SQL 2014 / 2012 / 2008 hosting
- ASP.NET 5/4.6/4.5 Hosting
- ASP.NET MVC 6.0 / 5.2 Hosting
- Silverlight 6 Hosting
- IIS 8.5 Hosting
99,9% Uptime Guaranteed ASP.NET 5 Hosting
To provide the most reliable and fastest ASP.NET service, they use 100% DELL PowerEdge web servers and hosts them in the state-of-art data centers in US (Washington & Seattle), Netherlands (Amsterdam), Singapore, Hong Kong, United Kingdom (London), Australia (Melbourne), France (Paris), Germany (Frankfurt), Italy (Milan), India (Chennai). The data centers have a carefully control working environment in terms of power, cooling, connectivity, security as well as many other technologies to ensure at least 99.9% uptime. At the same time, its engineers keep making efforts in improving the infrastructure. As its customers, people could choose a data center close to their location to gain better access speed.
ASPHostPortal.com ASP.NET 5 Hosting is Cheap
ASPHostPortal.com ASP.NET 5 hosting has many different plans: For DNN shared hosting you can start with Host One Plan ($5.00/mo) or Host Two Plan ($9.00/mo), customers who sign up with minimum 1 year service can get Free Domain or Double SQL Space with their coupon code. This offer valid for Host Two Yearly Plan or above, plus any of the Cloud Hosting & Reseller Hosting paid yearly.