从一篇blog得知使用脚本可以异步调用Web服务,觉得很新鲜,因为自己很少用到Web服务,所以决定写一写看看什么效果。

  首先在UI项目(我使用的是MVC4.0)里创建一个Web服务。

  

  添加Web服务后,默认有一个HelloWorld方法。调用该方法有两种形式,一是服务端通过实例化对象调用,二是前端脚本异步

调用。代码分别是:

1.服务端调用

 public ActionResult Index()
{
WebService1 ws = new WebService1();
var str = ws.HelloWorld();
return View();
}

2.脚本调用

 function CallBack() {
$.ajax({
type: "POST", //注意这个地方web服务不支持GET请求
contentType: "application/json;utf-8",
url: "http://localhost:7306/WebService1.asmx/HelloWorld",
data: null,
dataType: "json",
success: function (result) {
alert("success");
},
error: function() {
alert("error");
}
});
} CallBack();

  结果脚本调用发生错误。右击WebService1.asmx——》从浏览器查看——》点击调用HelloWorld,返回404错误。

  

  

  我想这可能是MVC路由造成的。web服务无法根据路由规则找到HelloWorld方法,于是新建了一个MVC3.0(MVC3.0

默认是没有路由文件的)程序和一个WebForm程序。经测试在这两者中不存在这样的问题,我又把项目里的路由注释掉。

结果web服务可以正常访问了。

  经过一番测试,从而证实了自己的想法。看来,在存在路由的项目里,异步调用web服务还要进行简单的封装,即需要

把服务的方法放在控制器的某一方法里。这样,既不影响路由又能满足异步调用。

  上面说了mvc路由引起异步调用web服务的问题。还有一个问题是与路由无关。当你右击在浏览器查看调用HelloWorld

方法时,刷新页面HelloWorld方法都能正常访问。但是如果你在浏览器url地址栏里回车,会发生下面错误,但并不影响使用。

  对于这一错误,个人觉得很是奇怪,有待查证。

  

  

mvc路由引起异步调用web服务的问题的更多相关文章

  1. 25.C# 异步调用Web服务

    1.创建Web服务 1.1VS新建ASP.Net空Web应用程序 1.2添加Web服务新建项 1.3添加GetWeather方法和相关类 using System; using System.Coll ...

  2. HttpClient异步调用WEB服务

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  3. 动态调用web服务

    通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...

  4. Android调用Web服务

    现在大部分应用程序都把业务逻辑处理,数据调用等功能封装成了服务的形式,应用程序只需要调用这些web服务就好了,在这里就不赘述web服务的优点了.本文总结如何在android中调用Web服务,通过传递基 ...

  5. 使用ASP.NET AJAX 从脚本中调用Web 服务的应用方法

    技能点:通过编写WebService,在页面js中调用WebService来进行数据查询. 网站开发,有些时候需要使用js在页面动态生成一些内容,但还有些数据要通过查询数据库才能获取的. 但由于诸如主 ...

  6. 在 SQL Server 的存储过程中调用 Web 服务

    介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. ...

  7. Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务、WCF消息头添加安全验证Token

    原文:Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务.WCF消息头添加安全验证Token 为什么选择wcf?   因为好像wcf和wpf就是哥俩,,, 为什么选择异步 ...

  8. 动态调用web服务 --WSHelper.cs

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Net;us ...

  9. 序列化和反序列化,异步调用web/wcf/函数

    //xml序列化 public static string Seria(DataSet ds) { XmlSerializer serializer = new XmlSerializer(typeo ...

随机推荐

  1. MySQL索引的索引长度问题

    转自:http://samyubw.blog.51cto.com/978243/223773 MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制. 在MyISAM表中 ...

  2. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  3. ssh 操作

    1.登录 ssh 用户名@远程地址 2.拷贝:scp -r 本地文件夹 远程文件夹(user@ip:目录) 3.从ssh中临时退出: a. ~  (control+z) b.查看后台任务:jobs c ...

  4. 【Linux】DNS服务-BIND基础配置

    1.BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Intern ...

  5. 洛谷P2679 子串

    放题解 题目传送门 放代码

  6. JAVA基础——Java 中必须了解的常用类

    Java中必须了解的常用类 一.包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的,比如基本类型不 ...

  7. Python web前端 01 HTML常用标签

    Python web前端 01 HTML常用标签 一.HTML创建项目 file ---->new project -----> 输入项目名------>创建文件夹 new dicr ...

  8. Django 中 admin 的执行流程

    Django 中 admin 的执行流程 1 循环加载执行所有已经注册的 app 中的 admin.py 文件 def autodiscover(): autodiscover_modules('ad ...

  9. 【算法笔记】B1015 德才论

    1015 德才论 (25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君 ...

  10. 洛谷 P4568 [JLOI2011]飞行路线

    题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的 ...