I ran into an issue for the first time today with a customer running 2 web applications that use our Enterprise .NET SDK on the same application server.
Checking the web server logs we noticed a ton of errors along the lines of:
assert failure: (.\infosessionmgr.cpp:357). (false : Cannot find an unused port between: xxxx – xxxx). Where xxxx was the same port number.
I found that customer had set the upper and lower request port in the registry to be the same port number. Now this is fine if you want to control the number of ports that are open on your firewall and you have any applications using the SDK in the same app pool (or seperate app pools that dont each have their own process). The same port would be used for all SDK communications and all is well.
What causes issues is when you have multiple Enterprise applications that are not in the same app pool and when each app pool is running under its own process. That is exactly what this customers setup was.
The problem is that only one application can bind to a port at a time. Since the applications were running under seperate processes, one was binding to the port which prevented the other from using it.
The way around this I could think of would be to either seperate the applications onto seperate servers or to open up the number of ports available to the SDK.
The customer had already decided to split the applications off onto seperate app servers so that should (hopefully) take care of the issue they are having.
Amazing that after all these years this is the first time I had run into something you would think would be much more common…
Good luck with your projects!