'솔루션 탐색기'에서 "GAC사용하기"프로젝트에 마우스 우클릭 --> 추가 --> '새 웹 사이트' 클릭 --> '새 웹사이트 추가'창에서 'Visual Studio에 설치되어 있는 템플릿'에서 "ASP.NET 웹 서비스"로 선택하고 '언어 -> Visual C#'으로 선택하고 저장할 위치 선택하여 '확인'버튼 클릭하면 "APP_Code/Service.cs" 코드창이 뜨는데(여기서는 "APP_Code/MyCalculator.cs") 이 코드에서 "[WebMethod]"로 쓰여있는 아래부분의 코드인 " public string HelloWorld() { return "Hello World"; } "를 지우고 다시 씀.(여기서는 아래의 "App_Code/MyCalculator.cs"의 코드와 같이 "[WebMethod]"아래에 " public int Minus(int a, int b) { return (a - b); } } "로 수정했음. 뺄셈연산을 하는 (웹)메서드 임.)


 

==> App_Code/MyCalculator.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// MyCalculator의 요약 설명입니다.
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다.
// [System.Web.Script.Services.ScriptService]
public class MyCalculator : System.Web.Services.WebService
{

    public MyCalculator()
    {

        //디자인된 구성 요소를 사용하는 경우 다음 줄의 주석 처리를 제거합니다.
        //InitializeComponent();
    }

    [WebMethod]
    public int Minus(int a, int b)
    {
        return (a - b);
    }

}

 

 

--> "[WebMethod]"아래에 코드 수정한 "APP_Code/MyCalculator.cs"를 웹에 띄워야 함 --> 솔루션 탐색기에서 "Service.asmx"(여기서는 'C:\...\WebCalculator'에 속해있는 "MyCalculator.asmx") 마우스 우클릭 --> '브라우저에서 보기' 클릭(-> 이 작업은 웹에 내가 작성한 '코드("APP_Code/MyCalculator.cs")'를 띄운 것인데, 여기서는 "내가 작성한 코드를 웹에 띄우는 자가테스트"를 해볼 수 있도록 "Visual Studio에서 지원하는 Tool"로 '브라우저에서 보기'를 실행함으로서 웹에 띄우는 효과를 구현한 것이다. 실제로 웹에 띄우는 방식은 이 방법과는 다름.(-> 돈을 내고 ip주소나 도메인을 할당받아서 웹에 띄우는 방식 등등으로 웹서비스를 함.))



/* "MyCalculator.asmx" 마우스 우클릭 --> '브라우저에서 보기' 클릭하여 실행한 화면.
 "APP_Code/MyCalculator.cs"에서 작성한 코드를 웹에 띄우는 동작이다. */
 





--> 여기서는 "GAC사용하기"프로젝트에 속해있는 "(콘솔 응용 프로그램으로 만든)ConGAC"에서 마우스 우클릭 --> "서비스 참조 추가"클릭 --> "서비스 참조 추가"창에서 '검색'버튼 클릭(여기서는 '검색버튼'을 클릭하여 '주소(경로)'를 간단히 검색하였는데 이런 방법외에 실제상이라면 ip주소를 입력해서 검색하는 방법도 쓰면 된다.) --> "서비스" 탭에서 하위로 계속 클릭하면 "WebCalculator/MyCalculator.asmx\MyCalculator\MyCalculatorSoap"이 나오는데 "MyCalculatorSoap"을 클릭하면 옆의 '작업'탭에서 "Minus"라는 메서드가 뜨는 것을 볼수 있다. --> 그 다음에 여기서는 "서비스 참조 추가"창의 '네임스페이스'에 "Calc"로 이름을 지정한 후 '확인'버튼 클릭(이 작업은 "웹에서 서비스 참조"를 할 수 있도록 해당 웹(서버)의 주소를 지정해 준 작업이라고 할 수 있다.) 여기서 실행한 화면은 아래와 같다.








--> "GAC사용하기"프로젝트\"ConGAC"\"Program.cs"에서 웹에 올려진 "APP_Code/MyCalculator.cs"의 코드(메서드)를 참조(사용)하기 위한 코드를 아래와 같이 작성한다.("Calc.MyCalculatorSoapClient mcsc = new ConGAC.Calc.MyCalculatorSoapClient(); "코드와 
           "int r = mcsc.Minus(a, b); // 뉴욕에 있는 서버에서 가져오기" 코드를 타이핑 할 때 인텔리센스 되는지 확인할 것! "서비스 참조 추가"창에서 주소지정 및 이름입력 후 확인버튼 클릭하여 "(웹)서비스 참조 추가"가 올바로 되었다면 이 코드들을 타이핑할 때 인텔리센스 지원이 되어야 함. 인텔리센스가 지원이 안되고 있다면 다시 검토할 것!)


 

==> Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConGAC
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            int b = 5;

            Calc.MyCalculatorSoapClient mcsc = new ConGAC.Calc.MyCalculatorSoapClient();

            int r = mcsc.Minus(a, b); // 뉴욕에 있는 서버에서 가져오기

            Console.WriteLine(r);
        }
    }
}

 

--> "ConGAC('콘솔 응용 프로그램'이다.)"의 "Program.cs"에서 위와 같이 코드 작성 후 실행해보면(Ctl + F5)("ConGAC.Program"를 '속성'에서 "시작 개체"로 설정하고 실행.), 웹에 올려진 "APP_Code/MyCalculator.cs"의 코드(메서드)를 참조하여 실행한 결과, 콘솔창에 실행 결과가 '5'로 나온다.


< 실행결과 >

"ConGAC"의 "Program.cs"를 "시작페이지로 설정"하고 실행하면 콘솔창에 다음과 같이 출력된다.







* 참고화면
위에서 "ConGAC"에서 "서비스 참조 추가"를 한 결과 아래 그림과 같이 "ConGAC\Service References"에 "Calc"라는 이름의 '웹참조주소(경로)'가 생성된 것을 볼 수 있다.





Posted by holland14
: