Azure SignalR understanding connection count - asp.net-mvc

I am a bit confused with the Azure SignalR connection count. When I run my MVC.NET on my Visual Studio debug mode, it immediately creates 10 server connections. So, I carefully looked at the documentation (https://learn.microsoft.com/en-us/azure/azure-signalr/signalr-concept-messages-and-connections) and it said that
By default, each application server starts with five initial connections per hub, and each client has one client connection.
For example, assume that you have two application servers and you define five hubs in code. The server connection count will be 50: 2 app servers * 5 hubs * 5 connections per hub.
Well using the formula above, I should only have 5 connections because: 1 app server * 1 hub * 5 connections per hub = 5 connections. I can't understand why my portal showed that I have 10 server connections instead of 5.
Can anyone help to explain how Azure calculates the server connection?
Thanks...
UPDATE
For those who looking on how to enable Live Trace Tools:
Go to SignalR
Click on the SignalR that you want to trace
Click on Monitoring | Diagnostic Settings
If you haven't configure your log, click on "Configure Log Destination Settings" (Note: I think the cheapest way is to store under your storage account with retention of 1 day).
Tick Enable Live Trace and click Save
Open Live Trace Tool (it should say "Connected" on the top right corner)
Click on Capture
Start your app

Go to Diagnostics Settings under Monitoring tab in Azure portal SignalR service.
Click on "Open Live Trace Tool" button.
Click on Capture in newly opened window.
When you run your application, all connections would be shown in Live Trace.

Related

How to I read and write to console in Azure in .Net framework over a long period of time?

We have a .net framework 4.5.1 MVC web application. We want to log information to the console when the application runs. Obviously when running the app in my local computer, I can see the output window and my logs are there. But what about when it's deployed to Azure? How do I see my logs? Where in Azure should I log to (or what are my options)?
I tried:
Log streaming, but that lets me read logs for 12 hours then auto-shuts off. I need to see logs from a long time ago.
Azure App Insights, but I couldn't find any log information in there.
Log Querying, where it shows me a SQL-studio-like interface. But it says there's no logs, and sometimes it's grayed out and I can't enter a query, not that it shows anyways.
Using these logging tools:
Console.WriteLine("🔥 Console.WriteLine");
System.Diagnostics.Trace.WriteLine("🔥 Trace.WriteLine");
System.Diagnostics.Trace.TraceInformation("🔥 Trace.TraceInformation");
System.Diagnostics.Trace.TraceWarning("🔥 Trace.TraceWarning");
System.Diagnostics.Trace.TraceError("🔥 Trace.TraceError");
But I can't find my logs anywhere except in log streaming, which isn't what I'm looking for since that only works for 12 hours.
I tried to repro in my local and i can able to see my logs through:
. Enable diagnostics
.Download Logs from Kudu console
From Diagnostic setting i have enabled the following to see the logs
From Application insight we can see below data for our application
And , Using KuduConsole we can download the log files . From app service >advance tools> click on GO
After open kudu Go to **Debug console** and from here we can download our logs from the Left side as marked:
But I can't find my logs anywhere except in log streaming, which isn't
what I'm looking for since that only works for 12 hours.
Also Thanks to Amit Apple posting your suggestion as an answer to help other community members.
"You can do this by setting an App setting called DIAGNOSTICS_TEXTTRACETURNOFFPERIOD to a value (much) greater than 12 * 60 * 60 * 1000 which is 12 hours in milliseconds."
as mentioned in GItHub
For further information Please refer this SO thread How can I view console or trace output in an azure app service? Console.WriteLine or Trace.TraceError

Quartz Scheduler stops working when web page is Idle

When web page is loaded scheduler starts working just fine but when there is no task running in web page or when web page is in idle state the Quartz Scheduler stops working.
To resolve this follow the below steps:
Open IIS server
Go to Application Pools
Select the Application Pool of your app
Click on Advanced Settings on the right panel.
Inside the Advance Settings pop up set "Idle Time-out (minutes)" to 0.

Edge + VPN + Fiddler

While a VPN is enabled, Microsoft Edge stopped opening pretty much any URL after some or another recent Windows update. The only solution that worked for me was to install Fiddler based on another question at this site. Any idea why Edge requires a proxy server to again work while a VPN is enabled?
Sorry to be so vague on which Windows update I suspect started this issue. Some time passed before both Edge and the VPN connection were both in use.
See:
Edge Opens some sites and not others
If you had installed January 8, 2019—KB4480966 (OS Build 17134.523) or January 15, 2019—KB4480976 (OS Build 17134.556) than you may experience that you cannot load a webpage in Microsoft Edge using a local IP address. Browsing fails or the webpage may become unresponsive. This was considered as a known issue after these 2 updates.
Below steps can help you to fix this issue temporary.
(1) Open the Control Panel and select Internet Options.
(2) On the Security tab, select the Trusted Sites icon.
(3) Select the Sites button.
(4) Clear the check box for Require server verification (https:) for all sites in this zone.
(5) In the Add this website to the zone: box, type the local IP address that failed to load, such as http://192.168.0.1.
(6) Select the Add button.
(7) Select the Require server verification (https:) for all sites in this zone check box.
Select the Close button.
(8) Select the OK button.
(9) Restart Microsoft Edge.
Microsoft is working on a resolution and will provide an update in an upcoming release.

Solace multiple consumers for a queue not working

We have a java spring-dsl intergration program and running with 10 consumers configuration but out of 10 only 3 are working fine. For other I'm getting below errors:
DefaultMessageListenerContainer : Setup of JMS message listener invoker failed for destination 'Q-TEST-POC' - trying to recover. Cause: Error creating session - max transacted sessions exceeded (503: Max Transacted Sessions Exceeded)
Any setting need to done on SolAdmin so that multi consumer can able to get access or any other solution?
It sounds like your "Max Transacted Sessions" setting in your client-profile is too low for your application.
To modify this in SolAdmin:
Go to the "Clients" tab.
Select the "Client Profiles" View.
Edit the client profile used by your application.
Select the "Advanced Properties" tab.
Adjust the "Max Transacted Sessions" limit.

Communication Handling using Service in Blackberry 4.5

I am developing an app. (like google talk) which at phone boot-up starts a background service which is continuously running. This service interacts with UI (means any request to server is first sent from UI to service & from service to server) & any response is sent to UI through service.
What i know to start background service at boot up is "Create an alternate entry point and use that to start the background service. "
right click the project properties then go to Application tab, then check "Auto run on startup" / "System Module"
is it right?
In Android u can achieve this Service using system-defined Service class. How to achieve this in Blackberry 4.5? I want to do it (UI & Service) in one project.
Any solution?
Thanks for the reply.
I got a link for
"How To - Setup an alternate entry point for my application"
is it the right solution for starting Service?
I want the app. like email app. which will notify u when an incoming mail comes (like even though ur main application is minimized then also ur service is running in background which will continuously check for any incoming mail & will notify the main UI application through any app icon change)
So for this is there any class like Service class which will start at boot-up or "Setup an alternate entry point for my main UI application" is the only solution for this?
Thanks for the reply..
I read this GlobalEveltListener & tried for handling the communication between the 2 apps (Service app. & UI app.) by starting the Service at auto-startup.
I m using the "Persistent Store" & accessing it in both the apps. But the Persistent Store name should be unique otherwise it gives "Linker error: Cannot start the Service app. as Persistent Store is multiply defined." But I have to access the Persistent Store the both the apps to make some database calls.
So now i m trying for handling the Service by putting both apps in one project. So that the Persistent Store will be unique.
How to achieve this communication between Service & UI in one project?
You only need an alternate entry point if you want the program to behave in both the service mode, starting at boot and running in the background; and in application mode, having an icon in the home screen that the user can click to begin interacting with your software. In that case you need to have an entry point that tells the program "you are starting automatically at boot up", and one that tells the program "you are starting in response to user interaction".
There are other ways to handle this. If your application makes itself available to the user through ApplicationMenus, then you make the one and only entry point "Auto Run" and "System Module" so that it starts on boot, registers the menus and does not display an icon.
You can also use one entry point set to "Auto Run" but not a system module so the icon is displayed and detect the start on boot case using the ApplicationManager.inStartup() method.
The method you describe does work well for the type of application you are developing. It simplifies the initialization by allowing you to specify different arguments to the program in each entry point.
Please see the answer I have given earlier to a different question here. This essentially is an IPC mechanism between two running processes.

Resources