Hvordan du avbryter en WCF forespørsel stille uten å bli lagt merke til av kunden

stemmer
0

Er det en måte å stille avbryte behandlingen av en WCF forespørsel uten å bli lagt merke til av WCF / web klient ?

Min webserveren er utviklet ved hjelp av WCF med WebHttpBinding og lytte til 80-porten.

Det jeg mener er å la kunden vente til timeout , men serveren har allerede kansellert forespørselen og gir ikke noe svar på webklienten.

Nylig jeg utplassert en WCF web server over internett. Men en dag jeg innså at noen prøver å skanne mitt administrative nettside som login.php, admin_login.php som ikke eksisterer på nettstedet mitt og koste mye cpu-bruk. Siden forespørselen kommer fra forskjellige IP-adresser med forskjellige porter, er det vanskelig å blokkere disse forespørslene. Den eneste måten å løse dette er å bremse ned skanningen av stille avbryte behandlingen av forespørselen uten å merke webklienten.

Publisert på 14/10/2014 klokken 10:48
kilden bruker
På andre språk...                            


1 svar

stemmer
0

En idé er å implementere en tilpasset encoder på serveren din. Hvis det identifiserer i svaret det er i ferd med å sende noen forhåndsdefinerte header, så vil det rett og slett ikke sende den.

Anotehr idé er å ha en dummy operasjon kalt DoNothing (). Denne operasjonen bør merkes som OneWay. Den gjennomføre en operasjon velgeren . I selctor gjennomføre noen logikk for å avgjøre om du bør delegere til den virkelige drift eller til dummy én måte.

Begge ideene er uprøvd, men dette er et interessant spørsmål, lykke til!

Svarte 18/10/2014 kl. 19:29
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more