protected void Button1_Click(object sender, EventArgs e)
{
localhost.MyDemo MyService;
// try to get the proxy from Session state
MyService = Session["MyService"] as localhost.MyDemo;
if (MyService == null)
{
// create the proxy
MyService = new localhost.MyDemo();
// create a container for the SessionID cookie
MyService.CookieContainer = new CookieContainer();
// store it in Session for next usage
Session["MyService"] = MyService;
}
// call the Web Service function
Label1.Text += MyService.HelloWorld() + "<br />";
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
namespace TestWebServiceTradition.WS
{
public class OurSessionIDManager : ISessionIDManager
{
public OurSessionIDManager() { }
private SessionIDManager sid = new SessionIDManager();
public string CreateSessionID(HttpContext context)
{
return sid.CreateSessionID(context);
}
public string GetSessionID(HttpContext context)
{
return sid.GetSessionID(context);
}
public void Initialize()
{
sid.Initialize();
}
public bool InitializeRequest(HttpContext context, bool suppressAutoDetectRedirect, out bool supportSessionIDReissue)
{
bool redirectCookie = false;
if ((context.Request.RawUrl.ToLower().IndexOf(".asmx") > -1))
redirectCookie = true;
return sid.InitializeRequest(context, redirectCookie, out supportSessionIDReissue);
}
public void RemoveSessionID(HttpContext context)
{
sid.RemoveSessionID(context);
}
public void SaveSessionID(HttpContext context, string id, out bool redirected, out bool cookieAdded)
{
sid.SaveSessionID(context, id, out redirected, out cookieAdded);
}
public bool Validate(string id)
{
return sid.Validate(id);
}
}
}
<configuration>
<system.web>
<webServices>
<protocols>
<addname="HttpGet"/>
<addname="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>