asp.net 웹 메소드와 wcf 서비스의 차이점은 무엇입니까?
나는 .Net을 처음 사용하고 차이점을 이해하지 못합니다. 누군가 나를 올바른 방향으로 가리킬 수 있습니까?
ASP.NET 웹 서비스는 HTTP를 통해 SOAP (Simple Object Access Protocol)를 사용하여 메시지를 보내고받는 응용 프로그램을 구축하기 위해 개발되었습니다.
WCF는 .NET Framework 응용 프로그램이 다른 소프트웨어 엔터티와 메시지를 교환 할 수 있도록하기위한 것입니다. 기본적으로 SOAP가 사용되지만 메시지는 모든 형식이 될 수 있으며 모든 전송 프로토콜을 사용하여 전달됩니다.
ASP.NET 웹 서비스를 WCF 서비스의 하위 집합으로 볼 수 있습니다.
다음 은 두 프레임 워크를 비교하는 링크입니다.
차이점을 아는 것은 아주 쉽습니다.
ASP.NET 웹 메서드는 [파일 확장자 때문에] ASMX라고 불립니다 (4GuysFromRolla 확인, 좋은 튜토리얼이 있습니다 )
이 기술은 기능을 웹 서비스로 노출하여 어디서나 연결하여 사용할 수 있도록합니다. 하지만 ... 서버와 클라이언트 사이의 데이터를 보호 할 수 없으며 큰 파일을 명확하게 보내고 무슨 일이 일어 났는지 알 수 있습니다.
[참고] 인증서를 사용하여 웹 서비스에 대한 액세스를 보호 할 수 있지만 복잡하지만 일반적으로 ASMX에서는 사용자 이름 / 암호를 사용합니다.
WCF, 당신은 웹 서비스에 대한 다른 세계에있는,이 서비스를 노출 .NET에서 최고의 기술을 S ( 당신은 차이를 볼 수 있습니다 ... 서비스 !하지 웹 서비스 ), WCF는 필요가 그것을 실행하는 IIS하지 않습니다 콘솔 앰비언트 (예 : 명령 줄) 등을 사용하여 서버에서 시스템 서비스로 실행할 수 있으므로 WCF는 웹 서비스가 아닌 서비스라고 말합니다. ASMX를 실행하려면 IIS가 필요합니다.
WCF를 사용하면 SSL을 사용하여 통신을 암호화 할 수 있습니다 (ASMX에서는 WSE -Web Services Enhancements 를 사용해야 함 ). 대용량 파일을 안전하게 전송할 수 있습니다 (ASMX에서는 MTOM -Message Transmission Optimization Mechanism 을 사용해야합니다). ).
한 줄의 코드 만 변경하면 전송 기본 설정을 지정할 수 있으며 보안 수준이 훨씬 더 높습니다.
이것으로 더 나은 일반 개요를 얻길 바라지 만 훨씬 더 있습니다.
결론 : 보호 할 필요가없는 웹 서비스를 노출하려면 ASMX를 사용할 수 있습니다. 전혀 문제 없습니다.하지만 통신을 보호해야하는 경우 WCF에서 수행하십시오!
링크 : 여기에서 두 서비스 간의 성능 비교를 읽을 수 있습니다.
서비스 작성을위한 두 가지 프레임 워크입니다. WCF는 일반적으로 더 유연하며 사용되는 프로토콜, 서비스 호스팅 방법 및 다양한 보안 옵션에 대해 구성 가능한 옵션을 제공합니다. ASMX는 SOAP 기반 서비스를 제공합니다. 일반적으로 WCF도 성능 이 더 뛰어납니다 . 일반적으로 ASMX는 사용하기 쉽고 일반적으로 학습 곡선이 적습니다.
다음 은 주제에 대한 MSDN 포럼 토론입니다. 다음은 ASMX 및 WCF에 대한 시작 페이지입니다 .
위의 응답 외에도 .NET 3.0 이상에서 .NET Remoting을 대체하기 위해 WCF가 만들어졌습니다. SOAP, REST, POX 등 다양한 형식 (예 : XML 및 JSON)의 웹 서비스 외에도 WCF는 MSMQ 및 명명 된 파이프도 제공합니다. 위에서 언급했듯이 ASMX는 SOAP 기반 XML 웹 서비스 만 제공합니다.
다른 유형의 통신 프로토콜에 대해서는 .NET Remoting 을 조사해야 합니다. 추가 정보는 Pro C # 2008 및 .NET 3.5 Framework를 확인해야합니다 . 이는 훌륭한 리소스이며 .NET Remoting 및 기타 대체 기능을 다루는 이전 책에서 장을 얻을 수 있습니다.
새롭고 큰 차이점이 있습니다. Microsoft는 이제 ASMX 웹 서비스를 "레거시"기술로 간주합니다. " ASP.NET 및 XML 웹 서비스 클라이언트를 사용하여 만든 XML 웹 서비스 "를 참조하십시오 .
웹 서비스
- HTTP를 통해서만 액세스 할 수 있습니다.
- 상태 비 저장 환경에서 작동합니다.
WCF
WCF는 서비스를 다양한 유형의 응용 프로그램에서 호스팅 할 수 있으므로 유연합니다. 다음은 WCF 서비스 호스팅을위한 몇 가지 일반적인 시나리오를 나열합니다.
- IIS
- 였다
- 자체 호스팅
- 관리되는 Windows 서비스
그들은 모두 함께 두 가지 다른 것입니다. WCF는 하나의 서비스 유형 구성 요소를 작성하고 여러 방법으로 배포 할 수있는보다 일반적인 프레임 워크입니다 (Asp.Net 웹 서비스로도 포함).
다음은이 http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/ 에 대한 간략한 스레드입니다 .
나는 같은 문제가 있었다.
Microsoft Windows Communication Foundation Step by Step 이라는 책 이 정말 훌륭 하다는 것을 알았습니다 .
당신이 경우 단지 WCF를 사용하여 기존의 웹 서비스의 일을하려면, 그 책의 제 1 장 정확히 어떻게 그렇게하는 (쓰기 서비스, 테스트, 배포, 사용 서비스)을 보여줍니다.
VS2005 용으로 작성되었지만 vs2008을 사용하고 있으며 훨씬 더 쉽습니다.
WCF에는 더 많은 것이 있지만 그 책은 좋은 시작입니다.
웹 서비스와 WCF의 주요 차이점은 다음과 같습니다.
웹 서비스 : 웹 서비스는 인터넷을 통해 다른 응용 프로그램과 직접 상호 작용하도록 설계된 응용 프로그램입니다.
1) [WebService] 및 [WebMethod] 속성은 웹 서비스 및 메소드를 정의합니다.
2) HTTP를 통해서만 접근 할 수 있습니다.
3) IIS에서 호스팅됩니다.
4) 보안 서비스를 지원합니다.
5) 다중 스레드 수 없습니다.
6) 사용 된 Soap 또는 XML.
7) System.Xml.serialization 네임 스페이스는 직렬화에 사용됩니다.
WCF : Windows Communication Foundation (코드 명 Indigo)은 네트워크 분산 서비스를 구축, 구성 및 배포하기위한 프로그래밍 플랫폼 및 런타임 시스템입니다.
1) [ServiceContract] and [OperationContract] attributes defines a web service and methods.
2) Accessed through HTTP, TCP, MSMQ, P2P, Named pipes
3) Hosted in IIS, Self-Hosting ,WAS and Windows Service.
4) Can be multithreaded via service behavior class.
5) System.Runtime.Serialization namespace is used for serialization
6) Supports different type of bindings like BasicHttpBinding, WSHttpBinding,WSDualHttpBinding etc.
7) Support security services, reliable messaging, transactions, AJAX and REST Support
ReferenceURL : https://stackoverflow.com/questions/216931/what-is-the-difference-between-an-asp-net-web-method-and-a-wcf-service
'Programing' 카테고리의 다른 글
하나의 PostgreSQL 쿼리에서 여러 WITH 문을 사용하는 방법은 무엇입니까? (0) | 2020.12.30 |
---|---|
TypeScript에서 스위치 블록이 완전한지 어떻게 확인합니까? (0) | 2020.12.30 |
이벤트 처리기에 추가 매개 변수를 전달하는 C #? (0) | 2020.12.30 |
JTable을 지우는 방법 (0) | 2020.12.30 |
iviewers의 dllregisterserver가 실패했습니다. (0) | 2020.12.30 |