黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

.NET3.5下Asp.net如何異步調用WebService

系統 2569 0

在網上也找了一些,發現要么題目和內容不對應,明明是在 Winform 下異步調用,卻寫成在 Asp.net 異步調用 WebService ,有的調用方式在 .NET3.5 下不能通過, .NET3.5 下取消了 BeginXXXX,EndXXXX ,奇怪,而用了以下方式。

建立一個 WebService 和一個 WebApplication 如圖所示:

.NET3.5下Asp.net如何異步調用WebService

WebService 代碼為:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

namespace WebService1

{

/// <summary>

/// Service1 的摘要說明

/// </summary>

[ WebService (Namespace = "http://tempuri.org/" )]

[ WebServiceBinding (ConformsTo = WsiProfiles .BasicProfile1_1)]

[System.ComponentModel. ToolboxItem ( false )]

// 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。

// [System.Web.Script.Services.ScriptService]

public class Service1 : System.Web.Services. WebService

{

[ WebMethod ]

public string HelloWorld()

{

return "Hello World" ;

}

}

}

以下為 同步調用 WebService

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebApplication1

{

public partial class _Default : System.Web.UI. Page

{

protected void Page_Load( object sender, EventArgs e)

{

// 同步調用 WebService

Response.Write( "aaa<br>" );

localhost. Service1 n = new localhost. Service1 ();

Response.Write(n.HelloWorld().ToString()+ "<br/>" );

Response.Write( "bbb<br>" );

}

}

}

輸出結果:

aaa

Hello World

bbb

以下為 異步調用 WebService

1 、需要在 Default.aspx 頁的 Page 里加入 Async="true"

<% @ Page Language ="C#" AutoEventWireup ="true" CodeBehind ="Default.aspx.cs" Inherits ="WebApplication1._Default" Async ="true" %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

< html xmlns ="http://www.w3.org/1999/xhtml" >

< head runat ="server">

< title ></ title >

</ head >

< body >

< form id ="form1" runat ="server">

< div >

</ div >

</ form >

</ body >

</ html >

2 、在 Default.aspx.cs 里代碼

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebApplication1

{

public partial class _Default : System.Web.UI. Page

{

protected void Page_Load( object sender, EventArgs e)

{

// 異步調用 WebService

Response.Write( "aaa<br>" );

localhost. Service1 n = new localhost. Service1 ();

n.HelloWorldCompleted += delegate ( object sender2, localhost. HelloWorldCompletedEventArgs e2)

{

//e.Result 獲取處理結果

Response.Write(e2.Result.ToString()+ "<br/>" );

};

n.HelloWorldAsync();

Response.Write( "bbb<br>" );

}

}

}

運行結果:

aaa

bbb

Hello World

試驗結果: 發現 Hello World 時在輸出 aaa,bbb 之后輸出 Hello World 的。

使用總結:

1、在ASPX頁面設置一個允許異步調用的屬性 Async="true"這樣就可以在這個頁面里進行異步調用了

2、同步調用的方法和異步調用的方法不一樣,異步調用的方法是WebServic的方法名+Async()作為方法名,同步調用的方法就是WebService的方法名。

以上采用了匿名方法。將方法體的代碼和委托對象相關聯,如果要單獨定義一個方法,代碼如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebApplication1

{

public partial class _Default : System.Web.UI. Page

{

protected void Page_Load( object sender, EventArgs e)

{

// 異步調用 WebService

Response.Write( "aaa<br>" );

localhost. Service1 n = new localhost. Service1 ();

n.HelloWorldCompleted += new localhost. HelloWorldCompletedEventHandler (HelloWorldCompleted);

n.HelloWorldAsync();

Response.Write( "bbb<br>" );

}

// 完成事件處理方法

void HelloWorldCompleted( object sender, localhost. HelloWorldCompletedEventArgs e)

{

if (e.Error != null )

throw e.Error;

Response.Write(e.Result.ToString() + "<br>" ); //e.Result 獲取處理結果

}

}

}

.NET3.5下Asp.net如何異步調用WebService


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論