日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在 .NET 中運用 WEB SERVICE 的CallBacks機制 (5)

在 .NET 中運用 WEB SERVICE 的CallBacks機制 (5)

更新時間:2022-05-06 文章作者:未知 信息來源:網絡 閱讀次數:

3. Web Form
對于WebService”A”我們使用的瀏覽器作為客戶端。 每個 Web Methods有自己的按鈕觸發事件,在棧(Stack)中來保存Session類的狀態。 頁面的更新基于下面的機制:事件處理程序把數據壓到Session棧,在Page_Load時提取出來并且插入到ListBox control中。另一個議題是以異步方式調用DoSomeWorkA方法,它可以產生和處理callback,這就是我們為什么能送另一個請求給WebService”A”的原因。注意每項工作都被它的驗證票據ID所識別。
namespace WebFormCallbackWS
{
public class WebForm1 : System.Web.UI.Page
{
// ...
protected ServiceA sa = new ServiceA();

public WebForm1()
{
Page.Init += new System.EventHandler(Page_Init);
}

private void Page_Load(object sender, System.EventArgs e)
{
if(IsPostBack == false)
{
//initialize controls, one time!
if(Session["Status"] == null)
Session["Status"] = Stack.Synchronized(new Stack());
}
else
{
Stack stack = Session["Status"] as Stack;
while(stack.Count > 0)
ListBoxCallbackStatus.Items.Add(stack.Pop().ToString());

int numberOfItems = ListBoxCallbackStatus.Items.Count;
if(numberOfItems > 13)
ListBoxCallbackStatus.SelectedIndex = numberOfItems - 13;
}
}
private void Page_Init(object sender, EventArgs e)
{
// ...
}

#region Web Form Designer generated code
private void InitializeComponent()
{
// ...
}
#endregion

// Call the web service asynchronously
private void ButtonDoSomeWorkA_Click(object sender, System.EventArgs e)
{
int count = Convert.ToInt32(TextBoxCount.Text);
string ticket = TextBoxTicketId.Text;
//
AsyncCallback callback = new AsyncCallback(callbackDoSomeWorkA);
IAsyncResult ar = sa.BeginDoSomeWorkA(count, ticket, callback, null);
ListBoxCallbackStatus.Items.Add(string.Format("#{0} start ...",
ticket));
}
// the call callback from the WebService
private void callbackDoSomeWorkA(IAsyncResult ar)
{
string retval = sa.EndDoSomeWorkA(ar);
Stack stack = Session["Status"] as Stack;
stack.Push(retval);
}
// call the web service
private void ButtonAbort_Click(object sender, System.EventArgs e)
{
Stack stack = Session["Status"] as Stack;
stack.Push(sa.AbortWorkA(TextBoxTicketId.Text));

}
// Get the status from the web service
private void ButtonRefresh_Click(object sender, System.EventArgs e)
{
Stack stack = Session["Status"] as Stack;
stack.Push(sa.GetStatusWorkA(TextBoxTicketId.Text));
}
// clean-up the listbox
private void ButtonClear_Click(object sender, System.EventArgs e)
{
ListBoxCallbackStatus.Items.Clear();
}
}
}
ok,我們現在開始做過測試。上述的照片顯示了Web 形式的用戶界面。 首先,確定你網絡聯機并且處于企業內部局域網絡。 在 DoSomeWork 按鈕上的單擊,然后請求狀態結果。Status 和Abort按鈕可以在容易時間點擊。 ListBox 控件將會顯示某個工作的當前狀態 (由驗證票據得到)
結論:
使用應用程序模型的 WEB SERVICE開創了分布式架構的一個新紀元。在企業化模型層次結構中使用.Net Framework動態的調用Web Methods是簡單的,很直接的。這篇文章說明它如何使用 C#語言來實現。 這種解決方案很好的解釋了相關的概念和設計時所設計的問題。如果真正投入到市場,還需要考慮許多因素,如安全設計,完整的 url 尋址,密碼,服務器代理等。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 2023男人天堂 | 日日噜噜噜夜夜爽爽狠狠视频 | 人人模人人看 | 欧美成人午夜做爰视频在线观看 | 99久久精品国产免看国产一区 | 国产成人综合95精品视频免费 | 99人中文字幕亚洲区 | 欧美一级视频高清片 | 精品久久久久久中文字幕一区 | 欧美xxx4k精品hd | 亚洲精品日本高清中文字幕 | 四色婷婷婷婷色婷婷开心网 | 2019天天做天天拍天天夜 | 国产成人综合亚洲怡春院 | 欧美日本一道道一区二区三 | 国产黄视频网站 | 蜜桃视频免费观看入口大全 | 国产露脸无套在线观看 | 草草浮力地址 | 香蕉eeww99国产在线观看 | 浮力影院最新地址路线1 | 91视频com| 国产精品99在线观看 | 成年人国产视频 | 国产日韩综合 | 欧美日韩一线 | 久久99九九99九九99精品 | 99 久久99久久精品免观看 | 亚洲国产欧美在线观看 | 久久久久久久久女黄9999 | 天天撸日日夜夜 | 亚洲欧美日韩高清 | 精品午夜久久网成年网 | 精品国产视频在线观看 | 波多野结衣被强在线视频 | 精品国产91久久久久 | 一区二区三区四区精品 | 亚洲 欧洲 自拍 另类 校园 | 国产精品成人影院 | 久久综合玖玖爱中文字幕 | 亚洲伊人久久大香线蕉结合 |