WCF Rest Service가 있고 동일한 웹 사이트의 aspx 페이지에서이를 호출하려고합니다 (예 : 나머지 웹 사이트와 웹 사이트가 모두 같은 웹 사이트에 있음) . 세션을 활성 상태로 유지해야합니다. 다음이 발생합니다
세션 쿠키를 전달하지 않으면 서비스가 다른 세션을 만듭니다. 세션 쿠키를 전달하면 httpwebrequest가 오랜 시간이 걸리고 시간 초과가 발생합니다.
내가 잘못하고있는 것이 있습니까? 또는 호출하는 asp.net 페이지의 동일한 세션을 유지하면서 REST 서비스를 호출하는 더 좋은 방법이있을 수 있습니다.asp.net 코드에서 wcf REST를 호출 할 때 세션을 활성 상태로 유지
나는 다음 나머지 서명이 있습니다
HttpWebRequest req = WebRequest.Create(url)
as HttpWebRequest;
req.Method = "POST";
req.Credentials = CredentialCache.DefaultNetworkCredentials;
string result = null;
req.ContentType = "application/json";
req.Referer = this.Page.Request.Url.AbsoluteUri;
var cookieContainer = new CookieContainer();//pass session state;
cookieContainer.Add(new Cookie() { Domain = req.RequestUri.Host, Name = "ASP.NET_SessionId", Value = HttpContext.Current.Session.SessionID });
req.CookieContainer = cookieContainer;
string data = null;
//code that populates data goes here ... (excluded for simplification)
using (Stream webStream = req.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII))
{
requestWriter.Write(data);
}
using (HttpWebResponse resp = req.GetResponse() //timeout occurs here
as HttpWebResponse)
{
StreamReader reader =
new StreamReader(resp.GetResponseStream());
}
서비스가 제대로 작동하고 사용하여 자바 스크립트에서 호출 동일한 세션을 계속 다음과 같이 코드 숨김에서 나는이 서비스를 호출하고
[OperationContract()]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
string GetFilterQuery(LookupRequestDTO request);
$ .ajax 접근 방식