Mam aplikację asp.net i webservices (asmx), które znajdują się w tej samej aplikacji, ale nie w tym samym folderze plików aspx. Mam również aplikację WinForm, która korzysta z usług sieciowych. Oznaczyłem metody usług internetowych za pomocą [WebMethod (EnableSession = true)], ale nie mogę udostępniać tych samych wartości sesji, które są w aplikacji w serwisach internetowych. Aplikacja winform ma dostęp do sessionid z aplikacji i używam następujący kodUdostępnianie sesji między usługą web i aplikacją asp.net
Uri uri = new Uri(ServerServiceUrl);
_cookieContainer = new CookieContainer();
_cookieContainer.Add(new Cookie("ASP.NET_SessionId", SessionID, "/", uri.Host));
Moje pytanie brzmi: czy istnieje coś, co mi brakuje albo robi źle, że nie może uzyskać dostępu do sessioin aplikację z serwisów internetowych?
Dlaczego potrzebujesz sesji w usłudze internetowej? Czy przechowujesz jakiś tymczasowy stan? W takim przypadku, usługi IMO powinny być bezpaństwowe i przez to twój problem nie istniałby ... – Sunny
Zgadzam się, musisz pomyśleć o usługach internetowych, takich jak klasy statyczne – Pierreten
Moje usługi aspx, podobnie jak aplikacja, rozmawiają z usługami webowymi java i gdy aplikacja wywołuje usługi, przechowuje wartości przez pewien okres czasu. Zamiast wielokrotnie wywoływać usługi java, chcę użyć danych, które zostały buforowane przez aplikację. Dlatego właśnie chcę podzielić się sesją. –