`
isiqi
  • 浏览: 16710515 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

.NET3.5下Asp.net如何异步调用WebService

阅读更多

在网上也找了一些,发现要么题目和内容不对应,明明是在Winform下异步调用,却写成在Asp.net异步调用WebService,有的调用方式在.NET3.5下不能通过,.NET3.5下取消了BeginXXXX,EndXXXX,奇怪,而用了以下方式。

建立一个WebService和一个WebApplication如图所示:

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获取处理结果

}

}

}

分享到:
评论

相关推荐

    ASP.NET 3.5 AJAX服务器编程精选71例(使用C#)

    此资源集包含了随书光盘中的多个文件,提供了丰富的代码示例,帮助读者深入理解如何在ASP.NET 3.5框架下运用AJAX提升Web应用的用户体验。 首先,`DropDatabase.sql`和`BuildDemoDatabase.sql`是SQL脚本文件,用于...

    使用ASP.Net 3.5 的Ajax与Web服务开发实例

    本文将深入探讨如何在ASP.NET 3.5环境中从客户端JavaScript调用Web服务方法。 首先,为了允许客户端JavaScript调用Web服务,我们需要在页面中添加`&lt;asp:ScriptManager&gt;`控件。这个控件会自动生成JavaScript代理类,...

    jquery调用基于.NET Framework 3.5的WebService返回JSON数据

    在本文中,我们将深入探讨如何使用jQuery来调用基于.NET Framework 3.5的Web服务,并接收以JSON格式返回的数据。jQuery是一个强大的JavaScript库,它简化了与服务器端的交互,而.NET Framework 3.5提供了创建Web服务...

    asp.net2.0 调用websevice 实现天气预报

    当用户在页面上选择城市后,JavaScript会触发一个异步调用,调用后台的Web服务方法,传递城市名或ID作为参数。Web服务接收到请求后,获取天气数据并返回。然后,JavaScript将收到的数据更新到`UpdatePanel`内的元素...

    webservice异步调用

    WebService 异步调用 WebService 异步调用是指在客户端和服务器端之间进行异步通信的一种方式。在这种方式下,客户端不需要等待服务器端的响应,而可以继续执行其他任务。WebService 异步调用可以提高系统的响应...

    将大文件上传到Webservice .net3.5时出现问题

    在.NET 3.5框架下,使用C#开发的客户端应用程序与ASP.NET Web服务交互时,可能会遇到上传大文件的问题。这种问题通常是由于多种因素引起的,包括但不限于服务器配置、网络限制、请求大小限制以及编码方式等。下面...

    Asp.net调用WebService例子

    为了提供更好的用户体验,可以使用jQuery的`$.ajax`或`$.get`函数异步调用WebService,这样无需刷新整个页面即可更新天气信息。 8. **安全性与性能**: 考虑到安全性和性能,可以对WebService进行身份验证,限制...

    Asp.net利用ScriptManager调用webservice

    在Asp.net开发中,有时候我们需要在客户端与服务器端之间进行异步通信,这时Web服务(Web Service)和Ajax技术就显得尤为重要。本示例主要介绍如何在Asp.net环境中,利用ScriptManager组件来调用Web服务,实现客户端...

    Asp.NET Core 如何调用WebService的方法

    在*** Core中调用WebService的方法主要涉及到以下几个知识点: 1. **背景知识和需求理解**: - 了解*** Core:*** Core是一种开源的、跨平台的框架,用于构建现代web应用程序和API。 - 了解WebService:...

    asp.net+jquery+ajax所有调用例子

    此外,ASP.NET还支持通过Web服务(WebService)进行AJAX调用。创建一个ASMX文件,定义一个Web方法: ```csharp [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles....

    Asp.Net的webService简单示例

    本示例主要展示了如何在C#中创建一个简单的Web服务,并利用jQuery进行调用,以及如何返回自定义的JSON数据,而非依赖ASP.NET默认的`{d:content}`格式。 首先,创建一个新的ASP.NET Web服务项目。在Visual Studio中...

    异步调用WebService.zip

    本示例“异步调用WebService.zip”着重展示了如何在ASP.NET环境中实现异步调用Web服务,从而提高应用程序的响应速度和性能。 首先,让我们了解什么是异步调用。在传统的同步调用中,程序会等待一个操作完成后再执行...

    ASP.NET中jQuery调用WebService处理返回结果的方式

    在ASP.NET中,jQuery调用WebService进行异步通信时,主要通过jQuery的ajax方法实现。处理返回结果的关键在于理解返回数据的类型和对应的处理方式。对于返回字符串、数组或复杂对象,WebMethod可以通过设置不同的返回...

    asp.net webservice

    在实际应用中,ASP.NET Web Service还可以与其他技术结合使用,如AJAX(Asynchronous JavaScript and XML)以实现异步通信,提高用户体验;或者与WCF(Windows Communication Foundation)集成,利用其更强大的功能...

    java程序调用.net/c#的webservice

    另外,可以考虑使用异步调用提高性能,或者利用缓存策略减少不必要的网络请求。 在实际开发中,可能还需要处理数据类型转换、序列化和反序列化等问题,因为Java和.NET的数据类型可能存在差异。同时,确保你的Java...

    js调用.net webservice

    在JavaScript(JS)中调用.NET Web Service是跨平台通信的一种常见方式,它允许Web应用程序与服务器端的.NET服务进行交互,实现数据的交换。本文将深入探讨如何使用JavaScript来调用.NET Web Service,以及涉及的...

    asp.net 利用webservice,dataset创建火车票查询系统

    在本项目中,我们将探讨如何使用ASP.NET技术,结合Web服务(WebService)和DataSet来创建一个火车票查询系统。这是一个常见的Web应用程序开发实践,旨在提供用户友好的界面,查询全国范围内的火车票信息。 首先,...

    vc.net调用webservice

    虽然题目提到的是同步调用,但值得一提的是,.NET Framework也支持异步调用Web Service,这对于处理耗时的操作或避免阻塞UI线程非常重要。异步调用通常涉及BeginXXX和EndXXX方法对。 5. **RealMeter**: 提到的...

    Jquery Asp.net AJAX 异步通讯

    异步调用ASP.NET WebService方法 ASP.NET WebService(.asmx)提供了一种创建可跨域访问的服务接口。同样,jQuery的$.ajax()可以用于调用这些服务。服务方法需要定义为WebMethod,并启用静态方法,以便通过HTTP...

Global site tag (gtag.js) - Google Analytics