HttpRuntime.IISVersion equivalent in Asp.Net Core 3? - asp.net-core-3.0

I'm porting some code to Asp.Net Core 3 and would like a way to tell which version of IIS the system is running under or even if it is running via IIS, say verses Nginx.
An identical replacement for HttpRuntime.IISVersion isn't necessary but it would be nice to get some diagnostic info about what web server the site is running on and what version of the webserver it is.
Is there any way to do this in Asp.Net Core 3?

Related

.NET Core 5.0 Console with WebAPI

I once build a .NET Core Console App that contained a web host, so I could make controllers without using IIS. Isn't that possible in 5.0?
I need it to run as a service later. It used to be so easy :-)
I can't find any guides to that, but I can find guids addressing version 2.1.
Latest .NET Core project templates (and .NET 5 ones) use Kestrel by default.
You can find the related documentation here.
You can also find here specific documentation about running ASP .NET Core as a service in both Windows and Linux, and in the case of Windows, with and without IIS.

Finding running .NET version on IIS apps

I am currently working on a website being hosted on a server using IIS to manage the applications on it. I want to use a powershell script to find out what version of .NET each app is currently running. I have been trying to use the Web Admin module to find the .NET version but am struggling to find it.
Thanks
very simple
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version
then you will get this
version REG_SZ 4.7.02556

Why can't ASP.NET be hosted on a linux server?

ASP.NET is open source so shouldn't it be able to be hosted on any server just like a web app written in any other open source language such as php not limited to a windows server?
ASP.NET Core, the latest version (still in preview) in fact can be run on Linux.
Previous versions of ASP.NET have a dependency on the .NET Framework which only runs on Windows.
Technically, you can via ASP.NET Mono, and in fact Mono has support up to ASP.NET 4.0 and MVC 3.
The limiting factor really is IIS doesn't run on *nix, so you'll not be able to use the configuration aspects of the projects, but you can run the code via Apache modules or FastCGI.
The ASP.NET framework isn't open source (it has too many dependencies on internal code) but ASP.NET MVC and the new .NET Core, and ASP.NET Core releases are.
But just because something's open source, doesn't mean it "runs everywhere" it just means that you have some rights to look at the code, and typically can do things with that - someone still has to write an engine that can interpret and run your code on another operating system.

How to deploy ASP.NET website (version prior to ASP.NET 5) to Linux server?

I am currently in process of identifying a mechanism to deploy ASP.NET websites to Linux server. I know this requires Apache to be installed on Linux, and can be achieved using Mono.
I found a lot many articles but they all are referring to ASP.NET version 5 (i believe, vNext). But couldn't find anything for a version prior to that.
Is it due to "System.Web" assembly that we can't deploy ASP.NET website on anything except IIS? I know, OWIN has replaced that in vNext.
Any help on deployment of previous versions of ASP.NET to Linux will be very appreciated.
The new version of ASP.NET, version 5, and more specifically the .NET Core, runs cross-platform. That's why there is a lot of information about running ASP.NET 5 (or vNext) on Linux with Kestrel, the new cross platform webserver for ASP.NET 5.
However, you can run older ASP.NET projects on Apache using, indeed, Mono. The official documentation can be found here: http://www.mono-project.com/docs/web/aspnet/#aspnet-hosting-with-apache and here: http://www.mono-project.com/docs/web/mod_mono/

System requirements for using ASP.NET

I consider to use ASP.NET for developing a real-time appication that will be shown on a browser (IE, FF, Chrome etc.).
I'm wondering what are the system requirements for the server side where the application will be deployed?
Do I have to use IIS or I'm free to choose any web server I want? If IIS only - does it part of any Windows installation (so users do not have to pay extra charge for that?)
Do I have to install .NET Framework?
anything else?
Thank you!
You don't have to use IIS, you could use Apache, nginx, or xsp, but doing so means you have to use mono which is an open source version of the .NET framework, it's a couple of versions behind the real thing, you can find out more info here: http://www.mono-project.com/ASP.NET
If you choose to use Windows/IIS, then IIS is a feature of Windows that can be installed free of charge. You will need to install the .NET framework in order to host an ASP.NET web application, like IIS, the .NET framework and ASP.NET are features of Windows Server 2008 and above that can be installed/uninstalled whenever you like, for free.

Resources