使用WSE 2.0到.NET 3.5升级ASP.NET 1.1 Web服务

时间:2008-10-09 16:57:32

标签: .net web-services

我们最近使用WSE 2.0到.NET 3.5升级了包含Web服务的应用程序。当我们在Visual Studio 2008中转换项目时,它没有提到有关删除和/或修改WSE 2.0命名空间的任何内容。以下是.NET 1.1项目中Web服务的基本体系结构。

Web服务源代码:

[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名称空间。

尝试使用WSE到.NET 3.5从.NET 1.1升级Web服务时是否还有其他任何问题?

这与我之前关于使用升级的Web服务的客户端的问题有关:

Stack Overflow Question

3 个答案:

答案 0 :(得分:1)

answered原来的问题:

据说WCF(.net 3.5)与WSE3(.net 2.0+)兼容,但与WSE2(.net 1.1 +)不兼容。

因此,如果您不想更改客户端,但希望它与服务兼容,则可以保留旧服务源代码并在VS2008解决方案下保留对WSE2程序集的引用。因此,客户端和服务都是兼容的。

答案 1 :(得分:0)

我发现的最大问题是在Javascript中硬编码了一些服务器控件的名称。在带有masterpages的ASP.NET 2.0中,id的位置改为ctrl $ _gridview1_checkbox1 ...... 因此,需要使用控件的ClientID属性从服务器端更改和生成任何硬编码引用。

我还发现.NET 2.0对未捕获的异常更加严格,在升级并只更改最小代码以便我们获得成功编译后,我们开始遇到大量崩溃和未处理的异常。我们编写的代码非常错误且编写得很糟糕,但有趣的是.net 1.1从不抱怨或快乐地吞下错误......

答案 2 :(得分: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>