【发布时间】:2013-10-07 05:46:55
【问题描述】:
我需要从 ASP.NET Web 服务迁移到 WCF。目前的代码是这样的:
服务器端:
public class MyType
{
public int x;
public string s;
}
public class MyService : WebService
{
public MyType myObj;
[WebMethod]
[SoapHeader("myObj", Direction=SoapHeaderDirection.InOut)]
public string SomeMethod() // NO Parameter!!!
{
if (myObj.x > 5)
return myObj.s;
else
return "Less than 5";
}
}
</code>
客户端:
MyService service = new MyService();
MyType m = new MyType();
m.x = 10;
m.s = "That's it!!!";
service.myObj = m;
string s = service.SomeMethod();
这很顺利。现在我需要将其更改为 WCF。发现了许多关于如何使用 WCF 签署肥皂头的主题,但所有主题都是关于如何使用 MessageContract 作为类的属性,该属性将作为参数提供给操作。像这样:
<code>
[MessageContract]
public class MyType
{
public int x;
public string s;
}
[OperationContract]
public string SomeMethod(MyType myType)
{
} </code>
但这不是我需要的,我的方法必须保持不变(没有参数)。
很少有博客谈论使用 WCFExtra 库或实现 Client Dispatcher 接口以将 SOAP 标头添加到每个传出请求。但同样,我希望将 Web 服务迁移到 WCF 不应该影响我的客户端,并且他们不需要进行任何代码更改,他们应该能够使用扩展名为 .asmx 的 Web 服务。此外,当前的 Web 服务使用 MTOM 和 WSE-3。有什么简单的方法吗?
请帮帮我。
我已经阅读了以下文章,但没有一篇文章谈到如何处理 SOAP Header,WSE-3:
http://megakemp.com/2008/11/27/migrating-aspnet-web-services-to-wcf/
http://megakemp.com/2008/11/27/migrating-aspnet-web-services-to-wcf/
http://vikasbhardwaj15.blogspot.in/2012/05/convert-asmx-web-services-to-wcf.html
http://blogs.msdn.com/b/trobbins/archive/2006/12/02/integrating-wcf-with-your-existing-asmx-services.aspx
http://blogs.msdn.com/b/kaevans/archive/2006/10/05/phased-migration-from-asmx-to-wcf.aspx
http://www.manas.com.ar/waj/2007/05/31/asmx-to-wcf-migration/
【问题讨论】:
标签: wcf web-services