WCF CallBack in Production Environment - c#

I know this is going to sound stupid - but we've spent close to 4 weeks trying to implement a WCF callback system (Subscription Service), but to no avail.
Can anyone verify that they have successfully got this working in a multiple client production environment?
All the examples I've come across work on localhost but in production fails miserably.
The specific problem is that subscriptions and un-subscriptions work perfectly, up until the client is closed and re-opened at which point; multiple CallBacks are made or the Publish Method times out.
Again, can anyone confirm they have this working, or perhaps direct me to some documentation that provides a real-world PROVEN example.
Background info on my existing configuration found here:
WCF to WCF Communication
Thanks

Related

WCF Service On IIS Is Queueing Requests

Good morning,
I have a WCF service using the following technologies:
.Net 4.7.2
Castle Windsor + WcfIntegration Package
IIS 10
Visual Studio 22
Originally I asked a question relating to some Azure App Insights anomalies I was seeing that can be found here: Azure App Insights Question
I am now able to replicate the behaviour I was seeing that proves the Wcf Service is queueing the requests. I have a test harness that uses multi threading to send off a specified number of requests at once. If I fire off 100 requests and then an additional 5 from different machines, the 5 won't be returned until the 100 has finished. I believe this is on the connectivity to the service and not anything the service is doing. To prove this I created a blank method with a Sleep 100ms on it that then returned a blank memory stream. The above behaviour still occurred.
It's my understanding that WCF accepts Concurrent calls by default so I find the behaviour bizarre and hoping someone might have some information on configuration/settings I can try.
Thanks in advance.

Keep alive on shared server support

I have a followup question from this one. So, I'm using HangFire to run recurring jobs from a dummy webform on a shared server (somee.com). But I discovered that the IIS goes idle in x minutes, so my jobs are never executed (I mean they are only executed when the IIS is active).
So, is there any way to keep it alive? As it is a shared server I don't exactly have access to its configuration. I've read that having a service ping the website would do the trick. I've tried with uptimerobot but didn't have any luck. It still goes to sleep...
Any ideas?
So, I managed to solve it. I asked for help on the HangFire forums and finally did it. Here's the link to the post: https://discuss.hangfire.io/t/keep-alive-on-shared-server/3723
TL;DR: Basically, I'd tried ping and HTTP requests with uptimerobot and they didn't work for me. What did was their Keyword requests. And now I have a windows scheduler simulated service. :)
Visit the HangFire forums for details.

WCF send info from service to client when event happens in service

I'm trying to build basic prototypes from a project that will take form a little later down the road.
For this prototype I currently have a console application hosting WCF services and another console application consuming the WCF services.
I have read of the three different message patterns for WCF and from what I understand I can either :
1)Call the WCF service and wait for the answer, locking the consumer while its waiting for the answer.
2)Call the WCF service asynchronously, which doesn't lock the consumer while its waiting for the answer. An answer event will eventually happen.
3)Call the WCF service without expecting and answer at all.
What I would like to know is if it is possible to use WCF to send a message to the client when an event is triggered on the service side. For example if a variable changes on the application hosting my services, a message would be sent to a client.
The only way I can imagine this would be to have my client also host WCF services and send a one way message from my initial host as the client.
This seems like a somewhat odd way of doing things for some reason and I would love to know if anybody has another idea on how this could be done.
Thanks a lot!
Note: Just in case anybody gets stuck on that, I am not looking for a way to trigger events when a variable changes. Also, there is no code in the question because it is mostly an architectural question. If you can point me towards the right tools to achieve what I'm looking for I'm sure i'll find plenty of code examples on how to use them!

Azure website IE10/11 error SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3

We are experiencing this error in IE10/11 and have spent the last 2 days researching about it and have not been able to find a solution. We are running a asp.net mvc 5 web application utilizing signalR in specific areas hosted on a azure website that is scaled up to 2 instances. We are using the Redis backplane mod to make sure our SignalR talks back to all instances of the application. The error is intermittent and causes the rest of the application to hang. We do not believe this is a SignalR issue because we removed the invocation of SignalR from the page and was still able to get the issue to occur.
We have tried the following
GET request before POST
Setting the charset=utf-8
Our JS libraries are update to date
We need to find a fix for this issue quickly so if anyone has any ideas I would be really greatful.
thanks in advance
One problem when scaling a SignalR application on more instances is that clients connected to a server only receive updates from other clients from the same server. (The messages are not automatically broadcast between all servers).
http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
One solution is to have a backplane that automatically sends the messages between servers, so that any server has any message at any time so it can push updates to their connected interested clients.
There are two implementations that Microsoft explains in the link above, one using Redis Pub/Sub and the other using Azure Service Bus.
With Redis you simply get an instance running (it can be on Linux, Windows or in Azure) and configure each server to push messages and subscribe to messages on the same channel.
I hope it helps your problem (since you said that the problem is intermitent, I can assume that it appears when clients are connected to different instances of your application).
Good luck!
EDIT:
Thanks for updating your question.
Have a look at this SO post:
IE10/11 Ajax XHR error - SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3
And at this post:
http://www.kewlcodes.com/posts/5/SCRIPT7002-XMLHttpRequest-Network-Error-0x2ef3-Could-not-complete-the-operation-due-to-error-00002ef3
Good luck!
I also ran into this issue. In my case, I used IOwinContext.Request.ReadFormAsync() in my server code. I found out that if I send a post request with json content type, ReadFormAsync() hangs.
I solved it by checking if the request's content type is json, and if so, I use a different method to parse the body.

Duplex communication between client and service in azure

i've been trying for a couple days making a duplex communication with a service present on WebRole in Azure. I add a reference of service to my client (console aplication running locally) and when try to call methods on service it never works.
If i try on azure emulator everything works fine.
Does anyone knows how to do that correctly? Where can i find tutorials with step by step works to do that ? I already made a lot of researches but any works or explains this.

Categories