I have an ASP-based application which provides real-time data from a local server to a small group of local users via mobile and desktop browsers (around 10 at any one time). Most of my installations use IIS running on Windows 7 Pro. Until now I have been using ajax short polling but am now prototyping changing the transport to SignalR.
Unfortunately it seems that using IIS on Windows 7 is not an option with since SignalR keeps a large number of connections open and in this configuration IIS has a concurrent connection limit of 10:
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/supported-platforms
I am considering attempting to use IIS Express for my deployments. Is this a route worth pursuing? What are the pitfalls? Do I have any other options (other than to install Windows Server).
Thanks all
You can use self host signalR on a windows service see here for a sample
I use it on a Win7 machine
Related
I ran into problems developing an application (.Net Framework 4.7+) using SignalR (v. 2.2). My IIS (v. 10 on Windows 10 HOME) is hanging after 2 established connections. It hangs completely, so no other site, hosted there, is no longer available.
I trieid to reproduce it on sample project (SignalR Chat). I downloaded it from https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc (http://code.msdn.microsoft.com/Getting-Started-with-c366b2f3). Hosted it in IIS. IIS hangs after 2 established connections (2 tab opened, on third tab page opens from cache, but message isn't posted, if force refresh with CTRL+F5, then page not loading at all). I updated the sapmple project to the latest versions of SignalR and OWIN. Same result.
Ok. I took a clean system (Windows 10 PRO), installed IIS there, hosted sample project there. Instead of 2 connections it hangs after 9 websocket connections. I tried to change the transport to LongPolling, and server hangs after 6 connections. Here is noted that on client OS (like WIndows 10) there is a limitation to 10 simultaneous connections. But not 2. Using IISExpress there are no such restrictions.
Checked this question. But there is no CPU usage at all. I tried all the solutions proposed here. No result.
2 simultaneous is extremely low.
It's because you're using a non server version of IIS. Deploy it to a server and it'll be fine.
Similar questions and answers: SignalR: worker process is limited to 10 concurrent requests
A version of this question has been asked many times. I cannot find a solution to my particular problem.
IIS 7.5 is hosting a web app as well as a WCF service using tcp. I have this running fine on several development boxes running Windows 7.
I get the error "Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding..." when I try running this on a Windows Server 2008 R2. --Even when trying to access it locally, from the same box.
I've enabled the proper bindings (net.tcp)
I've enabled the proper windows features (non-http activation, etc.)
the appropriate Windows services are running (net.tcp listener adapter, etc.)
Anyone have any ideas what else might be the problem?
I have 17 simple data entry applications(.net version is 3.5, designed in asp.net, coding language is c# and database is Oracle 10g) hosted under one application pool which is configured on IIS7 as .Net Framework Version = v2.0, Manged pipeline mode = Classic. My server is Windows server 2008 r2 64 bit with 32 GB ram.
Problem is one of my application started responding slowly, it was working fine before but now even pressing the tab key takes 2 to 3 seconds.
To check the problem I debugged the application in visual studio 2008 and it was working fine, then I configured the IIS7 on my PC and hosted the application from it and it was working fine( surprisingly my pc only have 4GB of ram and 32 bit windows 7 as operating system.)
I also tried DebugDiag on server to check the performance of w3wp.exe but couldn't find anything.
I also compared both the hosted applications (one from my local PC and one from server) using Firebug and fond under the .net tab that application hosted from server is taking more time, but I don't know the reason.
I also know for sure that database is not responding slow.
If someone can advice me how to check the problem that would be great,any advice would be appreciated.
Many thanks.
I have a windows service I made through visual studio in c#.
It uses SignalR to connect to a SQl database and receive notifications.
However, when I deploy the service onto the server itself (Windows Server 2008R2), it doesn't function. This server is the server hosting the SQL server too.
This is a SELF-HOSTED SignalR service. It is not using IIS or anything of the like to run. It is packaged as a simple Windows Service. Therefore, it doesn't have issues with typical MVC, IIS hosted apps (such as /signalr/hubs pathing, web.config etc.)
On my development computer, I use the WAN IP of the sql server to connect to its database. When I run it, it does everything it's supposed to and fires off a notification everytime server changes.
On the server itself, the service installs fine, but doesn't fire off any notifications. I left the IP as the WAN IP for developmental services and was planning to change it to localhost, etc. once it works but it does not.
For now, I left the service running on my development computer, and it's working great. I'd really prefer it to be on the server itself though, since that's the computer that will always be online.
Any hints or ideas on why this works on my development computer but not the server?
Thanks!
[Edit]
I'm using Windows 7 with Visual Studio 2013 as my development setup.
The service is running on localhost:2165 (arbitrary port). I am able to access that address via a web browser on the server itself.
You don't state what your development operating system is, but if you are using WebSockets, then you need to have a minimum of Windows 8 or Windows Server 2012.
From the documentation, the supported platforms are (emphasis mine):
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.
I installed the Microsoft.AspNet.SignalR.Utils version 1.1.0.0 and then install the performance counters using signalr.exe ipc.
In the performance monitor under category "signalr" I can see all the performance counters but it says no instances...so if I add one of the counters in the monitor they don't appear.
My signalr server is hosted on IIS as asp.net web api. Both server and client are using same version of signalr i.e. 1.1.0.0.
Any idea?
I was having the same issue while trying to run the "Microsoft.AspNet.SignalR.LoadTestHarness" from the SignalR source code. I even went so far as to create a full website in my local IIS 8 on Windows 8 (with a DNS entry in my machine's host file pointing the website address to my loop-back ip address - 127.0.0.1).
What ended up working for me was changing the AppPool's Identity to LocalSystem where the load test harness site was running.
A quick how-to for those not familiar, open up IIS, go to the Application Pools, find the Application Pool that the site in question is running under, right-click>Advanced Settings, find the Identity entry, and change it to LocalSystem (from ApplicationPoolIdentity).
Hope this helps.
To use these on full IIS you need to add the app pool user for your application to the Performance Monitor Users group.