Hi Zafer,
In addition to Stefans helpful comments, it looks like you're missing the section of the iRule where the response cookies are parsed for the ASP session ID. Without that, the second request would not be persisted to the same pool member as the first:
http://devcentral.f5.com/wiki/default.aspx/iRules/ASP_SessionID_Persistence.html
when RULE_INIT {
set ::debug 0
}
when HTTP_REQUEST {
set cli [IP::remote_addr]:[TCP::remote_port]
set SessionId [HTTP::cookie ASP.NET_SessionId]
if {$::debug}{log local0. "Client: $cli Request SessionId: >$SessionId<"}
if { $SessionId != "" } { persist uie $SessionId 1800 }
}
when LB_SELECTED {
if {$::debug}{log local0. "Client: $cli LB to: [LB::server addr]"}
}
when HTTP_RESPONSE {
set SessionId [HTTP::cookie ASP.NET_SessionId]
if {$::debug}{log local0. "Client: $cli Response SessionId: >$SessionId<"}
if { $SessionId != "" }{ persist add uie $SessionId 1800 }
}
Aaron