开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

在.NET框架下使用WSE DIME
作者: Builder.com
2005-03-23 16:24:59


Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments。

WSE可使开发人员跨安全平台建设可升级的、安全的Web服务。它支持用传输的方式发送SOAP消息,而不是HTTP。另一个特点是具有建立SOAP路由器的功能,SOAP消息被发送给SOAP路由器,路由器再将工作交付给托管该服务的Web服务器。

本文要探讨它的另一个特点,那就是对直接互联网消息封装(DIME)的支持。DIME标准对发送二进制附件非常重要,它规定了以二进制发送附件的方法。如果是以十进制或者base64编码方式,则附件大小会增加30%。本文中,我将用一段C#代码将一个简单的DIME附件连接到SOAP消息上。

如果你还未安装WSE 2.0,请到微软的官方网站下载(请确定你符合WSE 2.0网页上的相关要求)。完成安装后,你就可以开始创建自己的DIME服务了。

首先在Microsoft Visual Studio .NET (VS.NET)中创建一个ASP.NET Web服务工程。在你的工程中增加一个reference到Microsoft.Web.Services2类库。然后,在<system.web>元素中将以下元素添加到Web.config文件中:

<webServices>
<soapExtensionTypes>
<add type="Microsoft.Web.Services2.WebServicesExtension,
Microsoft.Web.Services2,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
</soapExtensionTypes>
</webServices>

另一个方法是在工程视窗中右键点击该工程,并选择WSE Settings 2.0,在General选项卡中选中两个检查框;这就可以添加合适的config设置。

最后,构造方法将DIME附件连接到SOAP消息。我要增加一个CreateDimeAttachment()方法。该方法接受一个输入参数,连接该文件的绝对路径是:

public void CreateDimeAttachment(string filepath)
{
  SoapContextctx = ResponseSoapContext.Current;
  DimeAttachment attach = new DimeAttachment("image/jpeg",
TypeFormat.MediaType,
filepath);
  ctx.Attachments.Add(attach);
}

Web服务响应的上下文存储在本地变量ctx中,并用image/bmp类型格式和文件路径创建一个新的DimeAttachment(我猜测文件路径可能为一个bitmap文件)。新的DimeAttachment被添加到当前响应上下文的Attachments集合中。

现在,你要做的只是将恰当的使用声明添加到.asmx文件顶部:

using Microsoft.Web.Services2.Dime;
using Microsoft.Web.Services2;
using System.Net;

以下为全部示例代码:

为了测试程序,你必须创建一个SOAP客户端。只是简单地使用引用Web服务的缺省页还不行。你可以编写一个新的ASP.NET Web应用程序,再将一个Web reference添加到新的Web服务中,这样便创建了一个SOAP客户端。同时还要注意以上面所示的方式添加WSE配置设置。



责任编辑:李宁

欢迎评论或投稿

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
Copyright (c) CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号