我们最近使用WSE2.0将一个包含web服务的应用程序升级到了.NET 3.5。当我们在Visual Studio2008中转换项目时,它没有提到任何关于删除和/或修改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.0Namespaces也被从类中删除。
还有没有人在尝试使用WSE将web服务从.NET 1.1升级到.NET 3.5时遇到了任何问题?
这与我之前提出的关于客户端使用升级的web服务的问题有关:
发布于 2008-10-13 20:07:35
当我answered到原来的问题时:
WCF (.net 3.5)据说与WSE3 (.net 2.0+)兼容,但与WSE2 (.net 1.1+)不兼容。
因此,如果您不想更改客户端,但希望它与服务兼容,则可以保留旧的服务源代码,并将对WSE2程序集的引用保留在VS2008 solution下。因此,客户端和服务将是兼容的。
发布于 2008-10-13 19:53:21
我发现最大的问题是Javascript,它硬编码了我的一些服务器控件的名称。在带有母版页的ASP.NET 2.0中,id被更改为类似于ctrl$_gridview1_checkbox1的内容...因此,需要使用控件的ClientID属性从服务器端更改和生成任何硬编码的引用。
我还发现.NET 2.0对未捕获的异常更加严格,在升级并只更改了最少的代码以便成功编译之后,我们开始遇到许多崩溃和未处理的异常。我们一开始就有非常多的but和写得很差的代码,但有趣的是.net 1.1从来没有抱怨或愉快地吞下错误……
发布于 2008-10-14 17:19:33
以下是该服务在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> https://stackoverflow.com/questions/188188
复制相似问题