본문 바로가기
다물칸 주소복사
조회 수 691 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
구분 팁&트릭
출처 내가작성

일전에 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 기능 사용 / 사용안함에서 다음 항목을 체크한다. 

SOAP_IIS_Setting.png



Windows 7 기준


1. 우선 ASP.NET .NET 3.5 버전으로 Web Service 프로젝트를 추가한다. 

SOAP_WebService_Prj.png




프로젝트를 추가하면 Service1.asmx 가 추가되는데 코딩은 여기서 다 하면 된다. 

    [WebService(Namespace = "http://localhost/")]

네임 스페이스가 기본으로 http://tempurl.org 뭐 이런식으로 추가되어 있는데 테스트 시에는 우선 위와 같이 localhost로 변경한다. 

변경하지 않으면 디버깅이 되지 않는다. 아마 배포시에는 여기에 컴퓨터 이름이나 해당 서버아이피를 넣으면 될 것 같다. 


다 됐다 치고.. 


2. 두번째로는 이것을 테스트하기 위해 응용 프로젝트를 추가한다. 

추가한 후,  서비스 참조를 추가한다. 

SOAP_AddServiceRef.png




솔루션에서 Add Service Reference를 누르면 나오는 창이다. Advanced를 클릭한다. (한글판은 고급 ??)


SOAP_AddServiceRef2.png




나오는 창에서 Add Web Reference를 클릭한다. 


SOAP_AddServiceRef3.png




URL에 웹서비스 주소를 추가하는데 추가 시 Asmx파일까지 full로 적어줘야 위와 같이 뜬다. 

"Add Reference"를 누르면 웹 참조가 추가된다. 


3. 웹참조된 저 위의 함수를 쓰는 방법


            localhost.Service1 svc = new localhost.Service1();
            string szName = svc.ProcLogin(textBox1.TexttextBox2.Text);
            MessageBox.Show("로그인 이름은 " + szName);
뭐 이런식으로 쓰면 된다.