I am in a middle of migrating a one classic Azure VM (hosting a web app using Signalr) to an Azure resource manager scale set having multiple VMS with os Windows Server 2016.
Looking at Signalr documentation (https://www.asp.net/signalr/overview/getting-started/supported-platforms) is seems that it support only Windows Server 2012.
I am using Signalr 2.2.0 .
I couldn't find any documentation saying that Signalr is supported on Windows Server 2016.
Does Windows Server 2016 supports Signalr?
Does Windows Server 2016 supports Signalr?
Yes, because you can run .Net 4.5(+) on Server 2016 (I would think this would be obvious). The following documentation was published in 2014, long before 2016 was released, so it's not going to mention future server versions explicitly. It seems the only requirement is the ability to enable Web Sockets.
(for example asp.net 2.0 was released in 2005 and can be run on Server 2016)
https://www.asp.net/signalr/overview/getting-started/supported-platforms
Excerpt:
Supported server operating systems
The SignalR server component can be hosted in the following server or client operating systems. Note that for SignalR to use WebSockets, Windows Server 2012 or Windows 8 is required (WebSocket can be used on Windows Azure Web Sites, as long as the site's .NET framework version is set to 4.5, and Web Sockets is enabled in the site's Configuration page).
Windows Server 2012
Windows Server 2008 r2
Windows 8
Windows 7
Windows Azure
Supported server .NET Framework version
SignalR 2 is only supported on .NET Famework 4.5. See the Recommended Updates section for updates that enhance reliability, compatibility, stability, and performance.
Supported server IIS versions
When SignalR is hosted in IIS, the following versions are supported. Note that if a client operating system is used, such as for development (Windows 8 or Windows 7), full versions of IIS or Cassini should not be used, since there will be a limit of 10 simultaneous connections imposed, which will be reached very quickly since connections are transient, frequently re-established, and are not disposed immediately upon no longer being used. IIS Express should be used on client operating systems.
Also note that for SignalR to use WebSocket, IIS 8 or IIS 8 Express must be used, the server must be using Windows 8, Windows Server 2012, or later, and WebSocket must be enabled in IIS. For information on how to enable WebSocket in IIS, see IIS 8.0 WebSocket Protocol Support.
IIS 8 or IIS 8 Express.
IIS 7 and 7.5. Support for extensionless URLs is required.
IIS must be running in integrated mode; classic mode is not supported. Message delays of up to 30 seconds may be experienced if IIS is run in classic mode using the Server-Sent Events transport.
The hosting application must be running in full trust mode.
Related
I start working on new Web App and still doing the research about the framework to pick. One of the requirements: the app will be deployed to IIS on Windows Server 2008 that has SSL3 certificate. Also the app will be deployed to newer Windows Server with TLS certificate. So the issue I'm facing is similar to this question.
Will .Net Core ASP.Net MVC support both SSL3 and TLS* or Should I go with standard .Net Framework?
If not, What version of .Net Framework to pick?
I could be wrong here, but SSL3 is very old and has succeeded by replaced by TLS 1.2.
If the server is running Windows Server 2008 R2 SP1 (release 2, service pack 1) or greater then I would recommending going with .NET Core.
However, if the server is Windows Server 2008 without R2 then you will need to use an older version of the .NET Framework say 4.6.1.
Before jumping in you should sit down with the decision makers point out that developing a solution on legacy infrastructure holds serious security and business risks.
Plain and simple: Is it even possible for a SignalR Application to run off IIS 8.5 on Windows Server 2012 R2, or is this not a compatible setup? There are tons of threads all over Stack Overflow that pose the same issue, that the dynamically generated script located at signalr/hubs is 404ing, but the threads with solutions are not using my iis/server setup.
I tried following the tutorial at https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr but it seems that it only works in Visual Studio's IIS Express. As soon as I move the application to our server, I get the error everyone else on SO is getting.
Here's the supported platforms for Signalr on the official documentation:
https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/supported-platforms
It stops short of Windows Server 2012 R2, but the documentation is dated. Any advice is appreciated.
Yes, Windows Server 2012 R2 and Windows Server 2016 both support SignalR. Just ensure WebSocket support is enabled and you're all set.
IIS Express is a cut-down version of IIS (which frustratingly does not work with IIS Manager), but internally it uses the same execution engine (including HTTP.sys integration) so it uses the same web.config files as the full-fat IIS too, so it supports SignalR too.
("IIS Express" is a thing because previously VS shipped with a simple web-server called Cassini, which used ASP.NET System.Web.dll for everything, which worked for simple applications but for more complex applications there was sufficient differing behaviour that it made development difficult)
I've been developing a web application with an expected client machine OS of XP. I just found out that the customer upgraded their machines to Windows 8.
So my questions are:
Can I still deploy my web application (.NET 4.0 and 2008 SQL Server express backend) on a Win 8 machine as expected?
Are there any concerns for running my app on Win 8?
I haven't had time to even check out Windows 8 yet as I was not expecting this.
Yes, .NET 4.0 application can work without any problems on Windows 8 and Windows Server 2008/2012.
I tried creating handler for web socket but context.IsWebSocketRequest is returning always false and failed to working with IIS 8 Express on windows 7.
How can I enable module for websocket or any step I missing? I have VS 2012 application with IIS Express dynamic url.
Please help for the same.
The WebSocket protocol needs to be enabled in IIS 8 (see http://www.codeguru.com/csharp/csharp/programming-html5-web-sockets-in-asp.net-4.5.htm). Additionally, I'm not sure web sockets is supported on Windows 7. I've only seen that Windows 8 or Windows Server 2012 are required.
The short answer is, you can write applications against WebSockets in Windows 7 using IIS 8 Express, but you can't actually test them. It requires Windows 8 or Windows Server 2012.
From the IIS 8.0 Express ReadMe:
WebSocket Support
IIS 8.0 Express supports writing WebSocket applications. For more information, see the WebSocket protocol specification or the System.Net.WebSockets Namespace topic on Microsoft's MSDN website.
Windows Server 2012 and Windows 8 features that do not work on Down-Level Operating Systems
There are a few features which require architecture that is specific
to Windows Server 2012 and Windows 8 Client that will not work
down-level when you install IIS 8.0 Express on earlier operating
systems:
Server Name Indication (SNI)
Central Certificate Store
WebSocket Functionality
Then, from the System.Net.WebSockets MSDN entry (emphasis mine):
Some of the classes in the System.Net.WebSockets namespace are supported on Windows 7, Windows Vista SP2, and Windows Server 2008. However, the only public implementations of client and server WebSockets are supported on Windows 8 and Windows Server 2012. The classes and class elements in the System.Net.WebSockets namespace that are supported on Windows 7, Windows Vista SP2, and Windows Server 2008 are abstract classes. This allows an application developer to inherit and extend these abstract classes with an actual implementation of client WebSockets.
This only references requirements for clients:
http://msdn.microsoft.com/en-us/library/8z6watww%28v=VS.100%29.aspx
I am looking for similar documentation in reference not just for .NET 4, but ASP.NET 4 and what IIS versions, OS SP's, etc. are required. I would like to see if there are any pitfalls to requesting IT to install ASP.NET 4 and MVC 3 on our server. Don't want to have egg on my face :)
Per the documentaiton on the installer download for .NET 4.0 ( http://www.microsoft.com/download/en/details.aspx?id=17851)
Additional Requirements for Server
Installation
If you have to perform a server
installation, your computer must have
the following software in addition to
the basic requirements:
•Internet Information Services (IIS)
version 6.0 or later. To access the
features of ASP.NET, IIS with the
latest security updates must be
installed before the .NET Framework is
installed. ASP.NET is supported only
on Windows XP Professional, Windows
Server 2003, Windows Server 2008, and
Windows Server 2008 R2.
So it will run in IIS 6.0 or above. If you want to know which operating systems support asp.net 4.0, that would be any operating system that supports IIS version 6.0 or above. This jives with my comment on your question.
That said, the biggest thing to watch out for is that you have to configure any .NET 4.0 IIS application to use a different applicaiton pool than 2.0, 3.0, or 3.5. There's more info on this here: http://johan.driessen.se/posts/getting-an-asp.net-4-application-to-work-on-iis6
WinXP has IIS 5 and the .net framework and ASP.NET 4 is supported on it. For server technologies, IIS6 and newer are supported, as Server 2003 which has IIS6 is the oldest server technology that supports ASP.NET 4.