문제

방금 첫 번째 웹 서비스를 작성 했으므로 웹 서비스가 존재하지 않는다는 가정을 만들 수 있습니다. 웹 서비스에서 DBCLASS 기능을 호출하려고합니다. 그러나 세션에있는 몇 가지 매개 변수가 필요합니다. 웹 서비스 에서이 세션 변수를 호출 할 수있는 방법이 있습니까 ??

도움이 되었습니까?

해결책

ASP.NET 웹 서비스를 사용하고 있고 세션 환경을 유지하려면 세션이 필요하다는 속성으로 웹 서비스 메소드를 장식해야합니다.

[WebMethod(EnableSession = true)]
public void MyWebService()
{
    Foo foo;
    Session["MyObjectName"] = new Foo();
    foo = Session["MyObjectName"] as Foo;
}

이 작업을 마치면 ASPX와 유사한 세션 객체에 액세스 할 수 있습니다.

지하철.

다른 팁

세션 변수 추가 서비스 계층의 복잡성을 증가시키지 않아야합니다. 누군가가 지적했듯이, 웹 서비스를 인수 목록에서 작업을 수행하는 데 필요한 모든 것을 취하는 고립 된 방법으로 생각하십시오.

일반적으로 웹 서비스는 세션 데이터에 의존해서는 안됩니다. 그것들을 일반적인 방법으로 생각하십시오 : 매개 변수가 들어가서 답이 나옵니다.

세션을 원한다면 [ "username"]. tostring (); ASPX 뒤에있는 다른 C# 페이지에서와 같이 웹 서비스 메소드 위의 [webMethod]를 [webMethod (enablesession = true)]로 간단히 바꿔야합니다.

감사합니다 :) Metro

어쩌면 이것은 httpcontext.current.session [ "name] 또는 그렇지 않으면 일부 매개 변수를 가져 가거나 데이터베이스에 저장해야 할 수도 있습니다.

당신의 질문은 약간 모호하지만 최선을 다해 답변하겠습니다.

웹 서비스를 호스팅하는 서버가 아닌 웹 서비스 호출을하는 서버에 세션 변수가 존재한다고 가정합니다. 이 경우 필요한 값을 웹 서비스 방법의 매개 변수로 전달해야합니다.

웹 서비스에서 세션을 사용하려면 2 단계를 따라야합니다.

  1. 메소드에서 [webMethod (enableSession = true)] 속성을 사용하십시오.
  2. 세션 [ "이름"] = 50 (저장하려는 내용) 다음 예제를 확인하십시오.
[WebMethod(EnableSession = true)]  
public void saveName(string pname)  
{  
   Session["Name"] = pname;  

 }  

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top