亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是XML Web Service

發布時間:2020-07-21 10:31:33 來源:億速云 閱讀:199 作者:Leah 欄目:編程語言

什么是XML Web Service?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

對于初識XML Web Service并想快速上手的人,可能希望快速了解它的創建和調用方法。本文將用一個小例子來講述如何用Visual Studio 2008來創建Web Service以及如何來調用它。例子中的Web Service將根據客戶程序的請求來返回一幅圖像。

1.       創建Web Service項目

打開VS2008,選擇File/New/Project菜單項,在打開的New Project對話框中,依次選擇Visual C# -> Web -> ASP.NET Web Service Application,然后輸入項目名稱(Name),存放位置(Position)和解決方案名稱(Solution Name),點擊“OK”生成項目。此例中我們用AnnotationWebService作為項目和解決方案的名稱(見圖1)。

什么是XML Web Service

1New Project對話框

2.       增加一個Web Service

VS2008Solution Explorer中點擊AnnotationWebService項,選擇Project/Add new item菜單項,在打開的Add New Item對話框中,依次選擇Web/Web Service,然后輸入Web Service的名稱(Name),點擊“Add”來增加一個Web Service。此例中我們用ImageService作為Web Service的名稱(見圖2)。

什么是XML Web Service

2Add New Item對話框

之后,我們在Solution Explorer中會看到這樣的項目目錄(見圖3)。(注意:系統在創建項目時會缺省地增加一個Web Service,名字為Service1,可以點擊其右鍵菜單中的Delete項將其刪除。)

什么是XML Web Service

3Solution Explorer

3.       Web Service編碼

右鍵點擊ImageService.asmx,選擇View Markup,可以打開此文件,我們可以看到如下一行:

<%@ WebService Language="C#" CodeBehind="ImageService.asmx.cs" Class="AnnotationWebService.ImageService" %>

它指示ImageService的代碼在ImageService.asmx.cs文件中。我們右鍵點擊ImageService.asmx,選擇View Code,打開ImageService.asmx.cs文件,增加我們的服務代碼,此例中,我們編寫一個根據給定的文件名讀取圖像并返回給客戶端的方法GetImage(見下面代碼)。

using System.IO;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
 
namespace AnnotationWebService
{
    /// <summary>
    /// Summary description for ImageService
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    // [System.Web.Script.Services.ScriptService]
    public class ImageService : System.Web.Services.WebService
    {
 
        [WebMethod(Description="Request an image by name")]
        public byte[] GetImage(string imageFileName)
        {
            byte[] imageArray = GetBinaryFile(imageFileName);
            if (imageArray.Length < 2)
            {
                throw new SoapException("Could not open image on server.", SoapException.ServerFaultCode);
            }
            else
            {
                return imageArray;
            }
        }
 
        private byte[] GetBinaryFile(string fileName)
        {
            string fullPathFileName = HttpContext.Current.Request.PhysicalApplicationPath + fileName;
            if (File.Exists(fullPathFileName))
            {
                try
                {
                    FileStream fileStream = File.OpenRead(fullPathFileName);
                    return ConvertStreamToByteBuffer(fileStream);
                }
                catch
                {
                    return new byte[0];
                }
            }
            else
            {
                return new byte[0];
            }
        }
 
        public byte[] ConvertStreamToByteBuffer(Stream imageStream)
        {
            int imageByte;
            MemoryStream tempStream = new MemoryStream();
            while ((imageByte = imageStream.ReadByte()) != -1)
            {
                tempStream.WriteByte((byte)imageByte);
            }
            return tempStream.ToArray();
        }
    }
}

4.       IIS中增加虛擬目錄(Virtual Directory)

打開IIS控制臺程序,右鍵點擊Default Web Site,選擇增加New/Virtual Directory菜單項,在打開的Virtual Directory Caption Wizard對話框中輸入虛擬目錄別名(Alias),此例中我們輸入AnnotationWebService,點擊“Next”,再選擇ImageService.asmx所在的目錄,再點擊“Next”直到“Finish”。(注:以上描述是基于XP SP3環境。)

5.       Web Service創建代理(Proxy)

VS2008中,打開一個Windows應用程序解決方案(.sln),此例中我們打開一個叫做AnnotationApp的解決方案。在要調用Web Service的項目上(比如此例中我們選擇用DataLib)點擊右鍵,選擇Add Web Reference菜單項(如果從未添加過Web Reference,可能會看不到Add Web Reference菜單項,我們可以先選擇Add Service Reference菜單項,在彈出的Add Service Reference對話框中點擊“Advanced”,再在彈出的Service Reference Settings對話框里點擊“Add Web Reference”),在彈出的Add Web Reference對話框中,輸入我們要調用的Web ServiceURL,此例中我們輸入:

http://localhost/AnnotationWebService/ImageService.asmx

然后點擊“Go”,ImageService就會顯示在下面的Web Page里,在Web reference name編輯框輸入Web引用的名字,為了避免再用ImageService這個名字,這里我們輸入ImageWebService(見圖4),然后點擊“Add Reference”來添加Web引用。

什么是XML Web Service

4Add Web Reference對話框

這會在Solution Explorer中增加一個Web Reference(見圖5)。

什么是XML Web Service

5Web Reference被添加

添加的引用是Image Service的代理代碼,其中包括一個與ImageService同名的類,派生于System.Web.Services.Protocols.SoapHttpClientProtocol。這樣在客戶代碼中就可以像調用自己的Assembly里的方法一樣調用ImageServiceGetImage方法。

6.       客戶程序調用Web Service

在客戶程序中需要調取圖像的地方增加如下代碼(注:代碼中的Image類不是.Net Framework類庫中的Image類,是客戶程序中的一個類):

    ImageService imageService = new ImageService();
            Bitmap bitmap;
            try
            {
                byte[] image = imageService.GetImage("half-bred panthers.jpg");
                MemoryStream memoryStream = new MemoryStream(image);
                bitmap = new Bitmap(memoryStream);
                _image = new Image(_viewportTransformer, bitmap);
            }
            catch (WebException e)
            {
                // Exception handling
            }

然后,可以將圖像顯示出來。

7.運行客戶程序來測試Web Service調用

編譯運行客戶程序,Web Service被成功調用并返回所調用的圖像(見圖6)。

什么是XML Web Service

6:運行結果

關于什么是XML Web Service問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰和县| 浦东新区| 大足县| 广安市| 道孚县| 祥云县| 伽师县| 肃宁县| 峨眉山市| 湘潭县| 滦平县| 旬邑县| 巴彦淖尔市| 阿尔山市| 吉首市| 凉城县| 丰城市| 连州市| 延庆县| 涞水县| 张家口市| 固镇县| 六安市| 深圳市| 潜江市| 枞阳县| 汪清县| 兴安盟| 宁陕县| 桐梓县| 常州市| 昌黎县| 古浪县| 广饶县| 乌兰浩特市| 塘沽区| 柳州市| 峨边| 南乐县| 兴海县| 内江市|