If the Hosting Bundle is installed after installing the 64-bit (x64) version of .NET Core, SDKs might appear to be missing (No .NET Core SDKs were detected). To resolve the problem, see Troubleshoot and debug ASP.NET Core projects.
When running the Hosting Bundle installer with options set, the value for each option is saved in the registry. Subsequent installs from the same Major.Minor version band use the same options, unless another set of options is explicitly passed from the command line. If the first install of the hosting bundle has no options passed, each option gets a default value of 0 written in to the registry. A value of 0 implies that the option is off, meaning the user is not opting out of the given component.
To manually restart IIS, stop the Windows Process Activation Service (WAS) and then restart the World Wide Web Publishing Service (W3SVC) and any dependent services. Execute the following commands in an elevated command shell:
The Hosting Bundle installer logs for the module are found at C:\Users\%UserName%\AppData\Local\Temp. The file is named dd_DotNetCoreWinSvrHosting__TIMESTAMP_000_AspNetCoreModule_x64.log, where the placeholder TIMESTAMP is the timestamp of the file.
I've looked around a bit on how to get the versions of the installed ASP.NET Core Hosting Bundles. I know that the "Bundle" consists of the ASP.NET Core Module(V2) for IIS, and the .NET Core Runtime itself.
The Problem is, that I have a ASP.NET Core 2.1 and a ASP.NET Core 3.1 app that need to run on the very same IIS, which is why I need to know if both "bundles" are installed. Most answers around here focus on the .NET Core runtime itself and end on dotnet --info or dotnet --list-runtimes which shows me all the installed runtimes, but iin case of --info only the highest installed "host".
Since some older answers center around the path that dotnet is installed in, I looked that one up, and to my surprise, within %ProgramFiles%\dotnet there is a host folder contianing subfolders with the versions of the bundles that were installed. Within each is a hostfxr.dll.
The install order of hosting bundles doesn't matter, you can install 5.0 then 3.1 then 2.1 in that order and the module version will be the latest major version from the newest bundle (in this example from 5.0 it will be v15.x)
But what's more important, an IIS that was installed after .NET Core doesn't seem to recognize the AspNetCoreModule(V2) at all. This means, that I always need to install the hosting package, no matter if the IIS is present or not, just to be sure.
I have tried to clean up a bit from old core versions on a server (Windows Server 2012 R2, IIS 8). When I uninstalled the .NET Core Runtime & Hosting Bundles version 2.2.8 (uninstalled with dotnet-core-uninstall) all applications on the server stops working. None of the applications uses Core 2.2, all is Core 3.1 and .Net5.
Came across this today and found a fix. At least in our case, we had to completely uninstall all .net core hosting bundles and runtimes. Rebooted the server, then reinstalled only .net 5 and 6, and boom it worked. Was having the exact same problem with 2.2.8
I observed the same thing: Uninstalled dot net 2.2.8, and most other iis-based web apps failed to launch, even after server restart. I then proceeded to uninstall the only other hosting bundle (7.0.10), restart, re-install of hosting bundle 7.0.10, and all seems proper.
Hope this helps others. I had a similar issue just today where I upgraded my app to .Net 8 and I older versions of .Net core ranging from 2.2.2, 3.1.1, 5, 6, and 7. So, I did some cleanup on my development machine and only left .Net 8 SDK etc... which was installed previously, then my app that's targeting .Net 8 failed to start complaining about the web.config, error code: 0x8007000d.
I encountered the same issue when trying to run applications in .NET 6, 7, and 8 on the server, which all required .NET Core 2.1.30 window server hosting. Initially, I checked at code level any Nuget package dependencies on .NET Core 2.1, but fortunately, I found none. In the end, I uninstalled all .NET runtimes and Windows server hosting install versions from the control panel on the server, and then restarted the server. Surprisingly, it worked!
I am in the process of doing an in-place upgrade of my Enterprise 10.8.1 base deployment to 11.1.
I have a separate virtual servers running Windows Server 2016 for Portal, Server, and Datastore. Web Adaptors for Portal and Server are each installed on their respective machine. IIS version 10.
After running Portal 11.1 upgrade successfully, the IIS Web Adaptor 11.1 installer would not let me begin its installation even though I had installed the .NET 6 hosting bundle 6.0.22 (and the Microsoft Web Deploy as well). It specifically gave me a popup when running the installer that it could not continue because .NET 6 hosting bundle was not installed. After restarting the machine, restarting IIS, repairing the installation of the hosting bundle, etc, there was no change. However, after uninstalling the hosting bundle and instead downloading and installing the 6.0.18 hosting bundle version, it worked.
I just wanted to see if anyone else could replicate this, or a warning if someone else is tearing their hair out as well.
I am having this same problem. However, I am installing 11.2 and first tried .net 6.0.25. I tried your solution of installing .net 6.0.18 instead but this didn't work for me. I also tried a few other .net versions but did it did not work. I also installed web diploy 3.6 so that isn't the issue. I checked to make sure .net 6.x is installed and it is. As last effort, I decided to try to install web adaptor 11.1. This gave me the same message that .net needs to be installed. If anyone has any ideas it would be appreciated. Thanks!
Recently I was upgrading the IIS ASP.NET Core Hosting Bundle to ensure the server had the latest patch release (3.1.8). Just to keep the server installations clean, I wanted to also remove all the previous versions of the core hosting bundle so that I only had the single required version. To do this I followed the following process:
The uninstalls and installs went smoothly, but when I was done I was receiving a 500 error from my ASP.NET Core application. Specifically error 500.19. I was able to see the exact error in the IIS logs.
To test this theory I logged onto the console of the machine directly and ran the executable for my ASP.NET Core application. It loaded and ran with fine with no errors to the console. So there were no runtime issues with my application.
I this issue was related to the fact that I ran the uninstalls after the installs. Since the uninstalls of the old hosting bundles were performed after the installation of the latest version, the uninstall had removed the module setup in the applicationhost.config.
I upgraded our existing umbraco 9 website to umbraco 10, and it continues to run on our test server which only has the dot net 5 hosting bundle installed on it at this point (not the dot net 6 bundle yet). I wasn't expecting it to run without the dot net 6 runtime bundle as per the hosting requirements on
hi jonok, thanks for the reply. What i was meaning is i haven't upgraded the server with a .net 6 hosting bundle and the umbraco 10 site still works fine (on net 5) so trying to understand why.thanks
.NET Core has a number of different runtime downloads that you can grab to install the runtimes and the SDK. It's not immediately obvious what you need, so since I just went through this myself and had a discussion with a few folks at Microsoft (thanks @DamianEdwards and @RowanMiller). I thought I'd summarize if for nothing else than my own reference in the future since I seem to forget what I figured for the last release ?.
If that doesn't work and you get an error, it means that .NET Core is not installed at all. dotnet.exe installs as part of a runtime install and puts itself on the path so you should be able to do dotnet --info if it is installed.
dotnet.exe installs with a runtime install, but it only provides core features to provide info to run and application and provide info about the install: dotnet mydll.dll and dotnet --info. To build, publish or do anything else you need to install the SDK.
It's important to understand that you can have multiple runtimes and multiple SDKs installed and each project can use a different one. The runtime is determined by your project's runtime specifier in the .csproj file:
The SDK is either the last globally installed SDK which is the default, or you can explicitly override the SDK in a global.json placed in the solution root folder. The following explicitly forces my project to use the last RC SDK, instead of the RTM version:
Generally, there should be no need to use a specific lower SDK version as the SDK is backwards compatible and can compile various versions of .NET Core applicatino back to v1.0. IOW, it's OK to use the latest SDK in almost all cases.
If you're on a Windows you're very likely to be using Visual Studio and if you have the latest version of Visual Studio installed you are likely to have the latest SDK, runtime as well as the required IIS hosting components installed.
If you're using Visual Studio you typically only need to update the components below if you need to target a specific version of .NET Core that is not already installed. If you're doing active development, the most likely scenario is that you'll be upgrading to the latest version anyway which is most likely going to match what Visual Studio installed.
The SDK is meant for non-Visual Studio build and management tasks. That's for command line use or if you're not on Windows specifically. The SDK basically provides what you need for a development setup to build and run .NET Core and all dependencies. The SDK is the largest download and it contains everything you need for a given platform.
c80f0f1006