2010-05-06 2 views
0

우리는 을 마침내 웹 서비스를 .Net 1.1에서 .Net 2.0/3.5로 업그레이드했습니다. 이러한 웹 서비스를 호출하는 클라이언트 중 하나는 Windows 서비스로 실행됩니다. 고객 사이트에서 서버를 업그레이드 한 후 얼마되지 않아 Windows 서비스가 업그레이드되지 않을 가능성이 있습니다..Net 1.1 클라이언트가 .Net 2.0 웹 서비스를 호출 할 수 있습니까? 그렇다면 어떻게?

.Net 1.1 클라이언트의 전화를 올바르게 처리 할 수 ​​있도록 .Net 2.0 웹 서비스를 마사지 할 수 있습니까? 내 테스트 환경에서 .Net 1.1 클라이언트에서 .Net 2.0 웹 서비스에 연결하면 IIS에서 401.1 오류가 발생합니다. 웹 서비스는 익명 액세스로 설정됩니다. .NET 2.0 클라이언트에서 .Net 2.0 웹 서비스에 연결할 때 동일한 자격 증명이 작동합니다. 당신의 도움에 대한

덕분에,

-colin-

답변

0

는 svcutil는 답변 주셔서 감사합니다. 그들은 왜 그것이 작동하지 않는지 더 진단하는데 도움이되었습니다. 모든 것이 작동하고 401.1 응답이 오해의 소지가 있음이 밝혀졌습니다 (그러나 정확함). 우리의 문제는 웹 서비스 디렉토리 구조가 변경 되었기 때문입니다. 내가 더주의를 기울 였다면, 나는이 질문을하기 전에 그것을 들었을 것이다.

내 질문에 대답 : 예. .Net 1.1 클라이언트는 .Net 2.0 웹 서비스를 호출 할 수 있으며 일반적으로 추가 구성이 필요하지 않습니다. URI가 올바른지 확인하십시오.

2

웹 서비스는 플랫폼 중립하기위한 것입니다. 웹 서비스가 제대로 작성 되었다면 SOAP 1.1을 지원하는 모든 플랫폼에서 클라이언트가이를 소비 할 수 있어야합니다.

이 떨어지는 곳은 서비스가 .NET 전용 유형을 반환하거나받는 경우입니다. 예를 들어 DataSet을 보내거나 받으면 문제가 발생할 수 있습니다. DataSet은 .NET뿐만 아니라 특정 버전의 .NET에도 고유합니다. .NET 1.1과 .NET 2.0 사이에서 XML 및 XML Serialization 영역에는 많은 변화가 있었으며 결국에는 이러한 문제 중 하나를 볼 수있었습니다.

하지만 그 중 어떤 것도 401 오류가 발생한다고 생각하지 않습니다. 이벤트 로그를보고 해당 오류에 대해 흥미로운 내용이 있는지 확인하십시오.

1

서비스에 따라 다릅니다. 닷넷 2.0 서비스 경우

  • 는 SOAP를 지원하도록 구성되어 1.1
  • 은 WSE 3.0을 사용하지 않습니다
  • 는 nullable 형식을 사용하지 않습니다 (WSE 2.0 확인한다) (.NET 1.1에서 지원되지 않음)
  • 는 수락 만 프리미티브 또는 POCO 클래스 (아무 DataSets 등)

그 다음은 호환을 반환합니다.

401.1 오류가 발생하지만 동일한 컴퓨터의 다른 클라이언트와 연결하는 데 문제가 없다면 SOAP 헤더에 서비스가 필요하다고 생각됩니다. 무엇을 기대하고 있습니다, 나는 당신에게 말할 수 없습니다; 서비스 코드/구성을 확인해야합니다.

또는 웹 서버에서 구성 문제 일 수 있습니다. 연결할 수 있거나 연결할 수없는 특정 환경에 대한 세부 정보가 없으면 말하기 어렵습니다.

0

@Aaronaught가 쓴대로 오류는 서비스에서 SOAP 헤더에있는 무엇인가를 기대할 수 있습니다. 이를 분석하기 위해 생성 된 wsdl (웹 참조의 모든 파일 확장)을 확인하거나 은 svcutil.exe을 통해 메타 데이터를 다운로드 할 수 있습니다. 그러면 웹 서비스를 호출하는 데 사용되는 프록시가 생성됩니다.
그런 식으로 프록시에 대한 통제력을 확보 할 수 있습니다.how to use svcutil

예 : 명령 프롬프트에서

: http://service/metadataEndpoint