>백엔드 개발 >C#.Net 튜토리얼 >세션 상태 사용 방법(ASP.Net 웹 서비스)

세션 상태 사용 방법(ASP.Net 웹 서비스)

Y2J
Y2J원래의
2017-04-18 17:55:261400검색

웹 서비스에서 ASP.NET의 세션 개체를 사용하려면 두 가지 작업을 수행해야 합니다.

1. WebService 클래스는 System.Web.Services.WebService 클래스를 상속해야 합니다.

2. WebMethod의 EnableSession 속성 값을 true로 설정해야 합니다

세션 상태 사용 방법(ASP.Net 웹 서비스)

CalculatorWebService 클래스를 보면 System.Web.Services.WebService 클래스를 상속했음을 알 수 있습니다. 그러나 EnableSession 속성 값을 true로 설정해야 합니다.

이번 글에서는 아래와 같이 GridView에서 세션 객체를 사용해 최신 계산 결과를 표시해 보겠습니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)

this 목적은 먼저 CalculatorWebService 클래스의 Add 메서드를 수정하는 것입니다.

[WebMethod(EnableSession = true)]
        public int Add(int firstNumber, int secondNumber)
        {
            List<string> calculations;

            if (Session["CALCULATIONS"] == null)
            {
                calculations = new List<string>();
            }
            else
            {
                calculations = (List<string>)Session["CALCULATIONS"];
            }
            
            string strTransaction = firstNumber.ToString() + " + " 
                + secondNumber.ToString() 
                + " = " + (firstNumber + secondNumber).ToString();
            calculations.Add(strTransaction);
            Session["CALCULATIONS"] = calculations;

            return firstNumber + secondNumber;
        }

세션 상태 사용 방법(ASP.Net 웹 서비스)

그런 다음 다른 공용 메서드를 도입하여 모든 계산 결과를 반환합니다. WebMethod 기능을 사용하여 이 메서드를 수정합니다. EnableSession 속성을 true로 설정합니다.

[WebMethod(EnableSession = true)]
        public List<string> GetCalculations()
        {
            if (Session["CALCULATIONS"] == null)
            {
                List<string> calculations = new List<string>();
                calculations.Add("You have not performed any calculations");
                return calculations;
            }
            else
            {
                return (List<string>)Session["CALCULATIONS"];
            }
        }

세션 상태 사용 방법(ASP.Net 웹 서비스)

이제 솔루션을 구축하고 브라우저에서 웹 서비스를 볼 수 있습니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)

웹 서비스에는 Add 및 GetCalculations라는 두 가지 방법이 나열됩니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)

Add 방법을 클릭합니다. 20, 30 등 두 개의 숫자를 입력한 후 Invoke 버튼을 클릭하면 결과는 50이 됩니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)

세션 상태 사용 방법(ASP.Net 웹 서비스)

또 다른 계산을 해보자. 30과 70이라고 해보자. 그런 다음 Invoke 버튼을 클릭하면 결과가 100으로 표시됩니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)

세션 상태 사용 방법(ASP.Net 웹 서비스)

이제 돌아가서 GetCalculation 메서드를 테스트해 보겠습니다. 그런 다음 Invoke 메서드를 클릭하면 이전에 수행한 모든 계산이 표시됩니다. 문자열배열 형태로 반환됩니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)0

이런 식으로 우리 웹 서비스는 예상대로 작동합니다. 이제 웹 애플리케이션에서 이러한 메서드를 사용해 보겠습니다. 이를 위해 Webform1.aspx에서 GridView컨트롤을 끌어다 놓습니다.

<tr>
    <td>
        <asp:GridView ID="gvCalculations" runat="server">
        </asp:GridView>
    </td>
</tr>

세션 상태 사용 방법(ASP.Net 웹 서비스)1

파일 수정 후 코드 앞에는 프록시 클래스를 업데이트해야 합니다. 이렇게 하려면 CalculatorService로 이동하여 서비스 참조 업데이트를 선택하세요.

세션 상태 사용 방법(ASP.Net 웹 서비스)2

그런 다음 btnAdd_Click 이벤트 코드 조각에 다음 코드 줄을 추가하세요.

gvCalculations.DataSource = client.GetCalculations();
            gvCalculations.DataBind();

            gvCalculations.HeaderRow.Cells[0].Text = "Recent Calculations";

세션 상태 사용 방법(ASP.Net 웹 서비스)3

솔루션을 구축하고 브라우저에서 이 웹 창을 확인하세요.

세션 상태 사용 방법(ASP.Net 웹 서비스)4

20과 30이라는 두 숫자를 결합해 보겠습니다. . 그리고 계산을 수행했지만 "계산을 수행하지 않았습니다"라는 메시지가 계속 표시되는 것을 볼 수 있습니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)5

이는 기본적으로 웹 애플리케이션이 웹 서비스와 동일한 SessionId를 전송하지 않기 때문입니다. 그러기 위해서는 web.config 파일의 allowCookie를 true로 설정하면 됩니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)6

이제 다시 웹을 실행해 보겠습니다. 창을 열고 숫자를 추가하세요. 이제 예상대로 실행되고 있음을 알 수 있습니다.

세션 상태 사용 방법(ASP.Net 웹 서비스)7

따라서 몇 가지 깊이 생각해 봐야 할 사항이 있습니다.

  • 웹 서비스가 수정되면 클라이언트 애플리케이션의 프록시 클래스가 업데이트됩니다. 이렇게 하려면 서비스 참조 폴더 아래에서 서비스를 마우스 오른쪽 버튼으로 클릭하고 서비스 참조 업데이트 항목을 선택하세요.

  • 클라이언트 애플리케이션이 ASMX 웹 서비스에서 반환된 쿠키를 수락하고 웹 서비스에서 시작되는 모든 향후 요청에 복사할 수 있도록 하려면 allowedCookies 속성을 true로 설정합니다. 이렇게 하면 클라이언트와 웹 서비스 간의 통신이 동일한 세션이 됩니다. 유지됩니다.

위 내용은 세션 상태 사용 방법(ASP.Net 웹 서비스)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.