[Mono-list] HttpWebRequest concurrency issues

Esben Laursen hyber at hyber.dk
Sun Dec 23 15:00:22 UTC 2012


Den 19-12-2012 10:26, Kriss skrev:
> Ian, Esben,
>
> How do you observe the problem, ie how do you observe that the socket is
> closed or that the webrequest used another context/session/object each time?
>
> I may be facing the same issue as yours, trying to understand why an
> application relying essentially on webrequest (and httplistener) runs fine
> in Windows but is much slower in Mono/Linux.

Hi Kriss,

I use wireshark to look at the traffic. From there I can see if the 
session..

If you use a http filter to find the request that you have done in my 
case it was:

http.request.uri contains "schur-beta"

Then I right-click on the request and select the "follow TCP stream". In 
my case I have multiple requests going to the same server, so I would 
suspect that it would use the same session. But when I follow the TCP 
stream, I can see that mono does a 3-way handshake sends one request, 
gets the response and then closes the connection.

If it used persistent connection I would see multiple requests/responses 
in between the 3-way "open" and "close" hand-shake.

Or you can simply look at the delta time and the source port of each 
request. Since the delta time is less than 1 sec. and the source port 
changes all the time, it means that we open a new session every time and 
close it again.

See this screenshot: 
https://dl.dropbox.com/u/2752232/mono-list/http-persistance-mono.png

I have a task to look into this later with mono-3.0, but its most likely 
not going to happen before mid-end Q1 2013.

I would be interested in if anyone else have experience to share ;-)

Cheers

Esben


More information about the Mono-list mailing list