WebService主要应用也是如此,比如在服务端写好一系列的WebService,在客户端程序(不论是C#/C++/ASP/JavaScript)都可以进行调用,如果是网页形式,就要用到XSLT来定制数据的显示格式基于我个人的理解,所谓的四层架构,也是多了一个WebService来对数据库进行操作,确实比较方便,不过大量的XML数据传送,我还没有做过测试,目前也在开发类似的项目,只有这么一点见解:)

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/2850/2850538.xml?temp=.5558588
    这里有个例子
      

  2.   

    Webservice?好东西呀.我也正在学习.友情UP
      

  3.   

    [WebMethod]
    public int validata(string userid,string password)
    {


    string sConnString ="User ID=;Password=;Data Source=;";
    string strSql="select count(*) from userdb where userid="+userid +" and userpwd ='" +password+"'";
    OracleConnection myConn=new OracleConnection(sConnString) ;
    myConn.Open();
    OracleCommand cmd=new OracleCommand(strSql,myConn);
    int count =Convert.ToInt32(cmd.ExecuteScalar()); 
    int validatenum;
    if (count== 0)
    {
     validatenum=-1;
    }
    else
    {
     validatenum=0;
    } return validatenum;
    myConn.Close();



    }
      

  4.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=7959F820-8B48-42ED-98A1-C8AB3E940A9B
      

  5.   

    http://dotnet.aspx.cc/ShowList.aspx?id=6
      

  6.   

    http://msdn.microsoft.com/smartclient/codesamples/FotoVision/
      

  7.   

    不过soap的开发.Net比较少,好是从java哪里找找吧,都一样的
      

  8.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.UI;
    using System.Web.Services;
    using System.IO; namespace xml.sz.luohuedu.net.aspxWebCS
    {
    /// <summary>
    /// GetBinaryFile 的摘要说明。
    /// Web Services名称:GetBinaryFile
    /// 功能:返回服务器上的一个文件对象的二进制字节数组。
    /// </summary>
    [WebService(Namespace="http://xml.sz.luohuedu.net/",
    Description="在Web Services里利用.NET框架进行传递二进制文件。")]
    public class GetBinaryFile : System.Web.Services.WebService
    { #region Component Designer generated code
    //Web 服务设计器所必需的
    private IContainer components = null; /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if(disposing && components != null)
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    } #endregion    public class Images: System.Web.Services.WebService
      {
       /// <summary>
       /// Web 服务提供的方法,返回给定文件的字节数组。
       /// </summary>
       [WebMethod(Description="Web 服务提供的方法,返回给定文件的字节数组")]
       public byte[] GetImage(string requestFileName)
       {
        ///得到服务器端的一个图片
        ///如果你自己测试,注意修改下面的实际物理路径
        if(requestFileName == null || requestFileName == "")
         return getBinaryFile("D:\\Picture.JPG");
        else
         return getBinaryFile("D:\\" + requestFileName);
       }    /// <summary>
       /// getBinaryFile:返回所给文件路径的字节数组。
       /// </summary>
       /// <param name="filename"></param>
       /// <returns></returns>
       public byte[] getBinaryFile(string filename)
       {
        if(File.Exists(filename))
        {
         try
         {
          ///打开现有文件以进行读取。
          FileStream s = File.OpenRead(filename);
          return ConvertStreamToByteBuffer(s);
         }
         catch(Exception e)
         {
          return new byte[0];
         }
        }
        else
        {
         return new byte[0];
        }
       }
     /// <summary>
     /// ConvertStreamToByteBuffer:把给定的文件流转换为二进制字节数组。
     /// </summary>
     /// <param name="theStream"></param>
     /// <returns></returns>
       public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
       {
        int b1;
        System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
        while((b1=theStream.ReadByte())!=-1)
        {
         tempStream.WriteByte(((byte)b1));
        }
        return tempStream.ToArray();
       }
        [WebMethod(Description="Web 服务提供的方法,返回给定文件类型。")]
        public string GetImageType()
        {
         ///这里只是测试,您可以根据实际的文件类型进行动态输出
         return "image/jpg";
        }
      }
    }
    }
      

  9.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.Services; namespace aspxWebCS
    {
    /// <summary>
    /// GetBinaryFileShow 的摘要说明。
    /// </summary>
    public class GetBinaryFileShow : System.Web.UI.Page
    { private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
       ///定义并初始化文件对象;
       xml.sz.luohuedu.net.aspxWebCS.GetBinaryFile.Images oImage;
       oImage = new xml.sz.luohuedu.net.aspxWebCS.GetBinaryFile.Images();
       ///得到二进制文件字节数组;
       byte[] image = oImage.GetImage("");
       ///转换为支持存储区为内存的流
       System.IO.MemoryStream memStream = new System.IO.MemoryStream(image);
       ///定义并实例化Bitmap对象
       Bitmap bm = new Bitmap(memStream);
       ///根据不同的条件进行输出或者下载;
       Response.Clear();
       ///如果请求字符串指定下载,就下载该文件;
       ///否则,就显示在浏览器中。
       if(Request.QueryString["Download"]=="1")
       {
        Response.Buffer = true;
        Response.ContentType = "application/octet-stream";
        ///这里下载输出的文件名字 ok.jpg 为例子,你实际中可以根据情况动态决定。
        Response.AddHeader("Content-Disposition","attachment;filename=ok.jpg");
       }
       else
        Response.ContentType = oImage.GetImageType();
       Response.BinaryWrite(image);
       Response.End();
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    } /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
       this.Load += new System.EventHandler(this.Page_Load);   }
    #endregion
    }
    }
      

  10.   

    最后,我们就编写最终的浏览页面:GetBinaryFile.aspx,这个文件很简单,只需要aspx文件即可,内容如下: <%@ Page language="c#" Codebehind="GetBinaryFile.aspx.cs" AutoEventWireup="false"
      Inherits="aspxWebCS.GetBinaryFile" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
        <title>通过Web Services显示和下载文件</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
      </HEAD>
      <body MS_POSITIONING="GridLayout">
        <form id="GetBinaryFile" method="post" runat="server">
          <FONT face="宋体">
            <asp:HyperLink id="HyperLink1" NavigateUrl="GetBinaryFileShow.aspx?Download=1"
             runat="server">下载文件</asp:HyperLink>
            <br/>
            <!--下面是直接显示文件-->
            <asp:Image id="Image1" ImageUrl="GetBinaryFileShow.aspx" runat="server"></asp:Image>
          </FONT>
        </form>
      </body>
    </HTML>