.net - WCF Throttling and Connection Limits -


i have browsed internet , stack overflow answers can't seem clear answer issues.

i have around 50 clients spread out across country regularly open wcf wshttpbinding call automatically through windows service server every 10-20 mins. works because limit # of clients can connect , perform long running operations through server , client knows cannot , tries next time checks in.

this has been working until yesterday when 1 client has 7 separate systems behind same router started having very slow internet issues. 7 systems open connection server every 10-20 mins, , perform "check-in" procedures. calls take while , each system may connected service @ once using 7 connections server. other 43 systems need "check-in" every 10-20 minutes. since client 7 systems having slow internet, calls long running processes on serice taking longer normal , timing out on client (i got stale security timestamp errors sometimes). in return hang wcf service responding other client requests , client timeout , server connections clean , process other requests.

i need service unaffected client internet issues , service needs keep chugging along servicing other clients continue "check-in".

now, i've implemented service throttling behavior on service end already:

dim stb new servicethrottlingbehavior stb.maxconcurrentsessions = 100 stb.maxconcurrentcalls = 20 stb.maxconcurrentinstances = 120  servicehost.description.behaviors.add(stb) 

i've done reading out there , found setting, not have in code of now:

system.net.servicepointmanager.defaultconnectionlimit 

which i've tried understand don't entirely. so, explanation, here questions:

  • do set system.net.servicepointmanager.defaultconnectionlimit @ service or client end?
  • where set that? before open servicehost? before create servicehost?
  • are there other areas change connection limits , concurrent calls wcf? (it seems reading there can few, depending on binding you're using)

note: if post answers, please use code, not use config file bindings, create binding programmatically.

thank you.

i don't understand service doing 'slow internet' should affect it. sending massive amounts of data , forth every check-in? without more detail on design it's hard going on.

that said, think should @ design again. if server doing long running operation before can respond client, client shouldn't hang around , wait on http 10 minutes @ time. make more sense send request, either check see if done (and not required hold connection) or use net.tcp binding , use that's more suited holding such lengthy connections (net.tcp use callback notify client when call done).


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -