使用WSE2.0的Dime可以发送附件。
1、服务器端与客户端都要对Microsoft.Web.Services2.dll进和引用。
2、使用Configuration Edtion为Web服务配置Web.config,打开Configuration Edtion,在General标签内选中所有项,然后选择保存后,会提示保存为一个config 文件,保存后打开这个文件,把里面的相关内容拷入web.config
3、web服务器端的AdvancedService.asmx文件内添加一个方法:
/// <summary>
/// 利用DIME传输附件
/// </summary>
[WebMethod]
public string GetAttachment()
{
SoapContext myContext = ResponseSoapContext.Current;
string filePath = Server.MapPath("Demo/tmpPic1.jpg");
DimeAttachment dimeImage = new DimeAttachment(
"image/jpeg",TypeFormat.MediaType,filePath);
dimeImage.Id = "tmpPic1.jpg";
//将新的DimeAttachment对象添加到SoapContext对象中,
myContext.Attachments.Add(dimeImage);
return filePath;
}
4、在客户端添加一个Web引用,如:Services,这里会自动产生一个代理类AdvancedServiceWse,
总是以Wse结尾的。
5、在客户端添加如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
AdvancedServiceWse asv = new AdvancedServiceWse();
try
{
myString = asv.GetAttachment();
}
catch(Exception ex)
{
Response.Output.Write(调用失败!);
return;
}
Bitmap myImage = new Bitmap(asv.ResponseSoapContext.Attachments[0].Stream);
MemoryStream mStream = new MemoryStream();
myImage.Save(mStream,ImageFormat.Jpeg);
myImage.Dispose();
Response.ClearContent();
Response.ContentType = "image/jpeg";
Response.BinaryWrite(mStream.ToArray());
Response.End();
}
这样就可以显示出从Web服务发过来的图片了