VS 2015. Setting right target framework for ASP.NET 5 web project

The problem is that DNX is aware that your project is targeting dnx46 but IIS is not :). So, IIS is starting as .NET 4.5.1 (by default) and trying to load your project which isn't compatible with 4.5.1.

In a future version of the VS Tooling, we're going to do a better job of detecting that but until then, things are a little rough for Web Applications that want to target .NET versions above 4.5.1. For now, I suggest just using dnx451 until then (if you aren't depending on .NET 4.5.2/4.6 functionality), but I'll provide some instructions below on how to make this work today if you need to use 4.5.2 or higher.

Note: dnx452 and dnx46 are fully supported in Console Applications and when using servers other than IIS (such as Kestrel or WebListener). Basically anything you can launch using the native dnx.exe bootstrapper works with dnx451 and dnx46 but the other hosting environments (IIS, IIS Express) need additional hints to launch the correct framework.

To make this work today, you need to set an environment variable DNX_IIS_RUNTIME_FRAMEWORK to the target framework you want to use. You can do this in the Project Properties page for the web application, on the Debug tab. Just choose the IIS Express profile and add the environment variable as below:

Launch Profile

We're going to get this added to the Known Issues, because it looks like we missed it, and as I said above, we're going to improve the default experience in VS so this isn't necessary :).


"DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46"

The value is case sensitive