SOAP을 이용한 웹서비스 처리방법
구분 | 팁&트릭 |
---|---|
출처 | 내가작성 |
일전에 PDA와 송수신을 하면서 TCP/IP프로토콜을 이용하여 처리하였는데 무선 Wifi가 불안정(하기 시작하면 접속하는데 시간이 오래걸리는 문제 발생)하여 제대로 명령이 먹지 않는 경우가 생겼다.
TCP/IP는 OSI 7계층에서 물리계층 바로 위의 네트워크 레이어에 속한다. 현재 문제는 물리계층 즉 인프라가 불안정하여 발생된 문제로 보인다.
그런데 타 업체에서 SOAP프로토콜을 이용하면 네트워크가 불안정하더라도 원할하게 돌아간다고 설레발을 쳐버렸다.
Soap프로토콜은 네트워크 레이어 위에서 돌아가는 녀석이다. TCP 80포트를 이용해 HTTP프로토콜 위에서 XML을 이용해 송/수신하는 방법으로
웹 서비스 시 많이 사용되는 프로토콜이다.
자 각설하고 ..
SOAP는 서버측 Soap Provider를 ASP.NET으로 프로젝트를 만들어 Web Service를 구축하고 이를 클라이언트(응용프로그램)에서 웹 참조해서 사용하는 식으로 구성된다. ASP.NET는 C#으로도 코딩이 가능하다.
이 내용을 왜 그리 복잡하게 써놨는지 모르겠다. 뭔가 더 있나?
우선 웹서비스를 개발하기 위해서는 물론 구축할 때도 필요하다.
제어판 - 프로그램 및 기능 (프로그램 추가/삭제) - Window 기능 사용 / 사용안함에서 다음 항목을 체크한다.
Windows 7 기준
1. 우선 ASP.NET .NET 3.5 버전으로 Web Service 프로젝트를 추가한다.
프로젝트를 추가하면 Service1.asmx 가 추가되는데 코딩은 여기서 다 하면 된다.
[WebService(Namespace = "http://localhost/")]
네임 스페이스가 기본으로 http://tempurl.org 뭐 이런식으로 추가되어 있는데 테스트 시에는 우선 위와 같이 localhost로 변경한다.
변경하지 않으면 디버깅이 되지 않는다. 아마 배포시에는 여기에 컴퓨터 이름이나 해당 서버아이피를 넣으면 될 것 같다.
다 됐다 치고..
2. 두번째로는 이것을 테스트하기 위해 응용 프로젝트를 추가한다.
추가한 후, 서비스 참조를 추가한다.
솔루션에서 Add Service Reference를 누르면 나오는 창이다. Advanced를 클릭한다. (한글판은 고급 ??)
나오는 창에서 Add Web Reference를 클릭한다.
URL에 웹서비스 주소를 추가하는데 추가 시 Asmx파일까지 full로 적어줘야 위와 같이 뜬다.
"Add Reference"를 누르면 웹 참조가 추가된다.
3. 웹참조된 저 위의 함수를 쓰는 방법
localhost.Service1 svc = new localhost.Service1(); string szName = svc.ProcLogin(textBox1.Text, textBox2.Text); MessageBox.Show("로그인 이름은 " + szName);뭐 이런식으로 쓰면 된다.