2008-10-09 7 views
1

최근 WSE 2.0을 사용하는 웹 서비스가 포함 된 응용 프로그램을 .NET 3.5로 업그레이드했습니다. Visual Studio 2008에서 프로젝트를 변환 할 때 WSE 2.0 네임 스페이스를 제거하거나 수정하는 것에 대해서는 언급하지 않았습니다. 다음은 .NET 1.1 프로젝트의 웹 서비스의 기본 아키텍처입니다.WSE 2.0을 사용하여 ASP.NET 1.1 웹 서비스를 .NET 3.5로 업그레이드

웹 서비스의 소스 코드 :

[WebService(Namespace="http://tempuri.org")] 
public class MyWebService : BaseWebService 
{ 
    //Do some stuff 
} 

BaseWebService 소스 코드 : 변환하는 동안

using Microsoft.Web.Services2; 
using Microsoft.Web.Services2.Security; 
using Microsoft.Web.Services2.Security.Tokens; 

namespace MyNameSpace 
{ 
    public class BaseWebService : System.Web.Services.WebService 
    { 
     public BaseWebService() 
     { 
      if(RequestSoapContext.Current == null) 
       throw new ApplicationExcpetion("Only SOAP requests are permitted."); 
     } 
    } 
} 

의 BaseWebService.cs 클래스가 프로젝트에서 제외되었으며 WSE2.0 네임 스페이스에서 제거되었다 클래스.

.NET 3.5에서 WSE를 사용하여 .NET 1.1에서 웹 서비스를 업그레이드하는 데 문제가 발생하면 다른 사람이 경험하게합니까?

은 내가 업그레이드 된 웹 서비스를 소비하는 클라이언트에 관한 한 앞의 질문과 관련이 :

Stack Overflow Question

답변

0

내가 찾은 가장 큰 문제는 일부의 이름을 하드 코딩했다가 자바 스크립트에 내 서버 컨트롤. ASP.NET 2.0에서 masterpages를 사용하면 id가 ctrl $ _gridview1_checkbox1 ... 과 같이 변경됩니다. 따라서 하드 코드 된 참조는 컨트롤의 ClientID 속성을 사용하여 서버 측에서 변경하고 생성해야합니다.

또한 .NET 2.0은 업그레이 드 후 최소 코드를 변경 한 후에 캐치되지 않은 예외에 대해 더 엄격하게 처리되어 많은 컴파일 및 처리되지 않은 예외가 발생하기 시작하여 성공적인 컴파일을 얻을 수 있음을 알게되었습니다. 우리는 ...

1

을 매우 버그와 가난으로 시작하는 코드를 작성했지만, 1.1 .NET 불평하거나 행복하게 오류 삼킨 결코 그냥 재미 나는 원래의 질문에 answered :

WCF (.NET 3.5)는 WSE3 (.net 2.0+)과 호환되지만 WSE2 (.net 1.1+)와는 호환되지 않는다고합니다.

클라이언트를 변경하지 않고 서비스와 호환되도록하려면 이전 서비스 소스 코드를 그대로두고 VS2008 솔루션 아래에서 WSE2 어셈블리에 대한 참조를 유지할 수 있습니다. 따라서 클라이언트와 서비스는 호환 될 것입니다. 여기

+0

그래서 WSE 2.0에 대한 참조, 또는 단지 서비스의 클라이언트 및 서비스에 있어야? –

+0

클라이언트 프록시는 Microsoft.Web.Services2.WebServicesClientProtocol을 상속해야합니다. 서비스 구현은 Microsoft.Web.Services2 네임 스페이스 및 어셈블리를 사용해야합니다. Web.config에는 system.web/webServices/soapExtentionTypes가 올바르게 설정되어 있어야합니다. – DreamSonic

+0

구성 설정에 대한 최신 답변을 확인하십시오 ... –

0

서비스에 대한 Web.config의 설정입니다 :

<system.web> 
    <webServices> 
     <soapExtensionTypes> 
      <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" /> 
      <!--<add type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>--> 
     </soapExtensionTypes> 
    </webServices> 
</system.web> 
관련 문제