简述WebService的使用(一)

环境:

  vs版本:vs2013

  windows版本:win7

  IIS版本:IIS7.0

  (如果觉得对您有用,请点击右下角【推荐】一下,让更多人看到,谢谢)

配置环境:

  主要针对于IIS

  ·首先,有很多人的机器上都没有打开IIS服务

    控制面板->程序和功能->打开或关闭windows功能(左侧,较慢,稍等)->Internet信息服务(默认打开的功能不能完全满足之后的需要,可以全部打开或者网上查询一下需要打开哪些)

  ·接着,在管理工具中打开Internet 信息服务(IIS)管理器

  ·最后,在网页上输入http://127.0.0.1后能看到IIS的主页,就ok了。(这里隐藏了一个问题,就是先安装了framework后安装IIS会有一个问题,稍后解决)

  

  防火墙配置:(如不配置,在其他机器上访问不到发布在你机器上的服务接口或者其他网站)

  网上有说直接关了防火墙,就好比人家惹到你,你非得整死他一样。。。好惨

  打开防火墙,点击左侧菜单里面的“高级设置”,会看到有“入站规则”和“出站规则”,添加一个入站规则端口就好了,这样,你在下面的流程中配置的那个端口,在其他位置访问你机器上的这个端口的时候,就不会被拦住了...何必置人于死地呢!

实现过程之编写WebService

  我使用的是vs2013,过程如下:

  1、创建空解决方案

  2、创建空Web应用程序工程(这里面没有web服务工程...)

  3、创建Web服务(asmx)

  这是IDE会给你初始化一个开发框架,你只需要在里面加上你需要公开的方法就可以了,[WebService]特性的使用就是用来修饰将要公布出来的服务接口。(具体原理这里不讲)

  代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Services;
 6 
 7 namespace WebService
 8 {
 9     /// <summary>
10     /// WebService1 的摘要说明
11     /// </summary>
12     [WebService(Namespace = "http://MrHouJL/WebServices")]
13     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
14     [System.ComponentModel.ToolboxItem(false)]
15     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
16     [System.Web.Script.Services.ScriptService]
17     public class WebService1 : System.Web.Services.WebService
18     {
19 
20         [WebMethod]
21         public string HelloWorld(string str)
22         {
23             return "Hello World" + str;
24         }
25         [WebMethod]
26         public string HelloWorld1()
27         {
28             return "Hello World 1";
29         }
30         [WebMethod]
31         public string HelloWorld2()
32         {
33             return "Hello World 2";
34         }
35         [WebMethod]
36         public string HelloWorld3()
37         {
38             return "Hello World 3";
39         }
40         [WebMethod(Description = "求和的方法")]
41         public double addition(double i, double j)
42         {
43             return i + j;
44         }
45         [WebMethod(Description = "求差的方法")]
46         public double subtract(double i, double j)
47         {
48             return i - j;
49         }
50         [WebMethod(Description = "求积的方法")]
51         public double multiplication(double i, double j)
52         {
53             return i * j;
54         }
55         [WebMethod(Description = "求商的方法")]
56         public double division(double i, double j)
57         {
58             if (j != 0)
59                 return i / j;
60             else
61                 return 0;
62         }
63     }
64 }
View Code

  功能编写完毕,接下来就是发布在刚刚准备好的IIS环境上面了。

  1、右键点击工程,发布,选择一个文件夹物理路径。

  2、打开IIS管理器

  3、右击“网站”,添加网站,配置“网站名称”,“物理路径”,“IP”,“端口”OK

  4、注意:这里面的身份验证要允许匿名,目录浏览要启用(双击点击右侧启用,为了之后可以浏览WebService目录)

  5、运行网站,你在浏览器中输入之前输入的IP+端口号就能访问到目录了(如有问题留言或者度娘)。

实现过程之访问WebService

  在这里主要是介绍使用后台访问:

  首先,在工程里面右键点击引用,添加服务引用,输入IP+端口,点击“转到”,应该就能看到之前的所写的服务接口了。起个名就添加进去了。

  添加webform界面,前台代码如下

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebService.WebForm1" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12     <div>
13     
14     </div>
15         <asp:TextBox ID="TextBox1" runat="server" Height="15px" Width="50px"></asp:TextBox>
16 &nbsp;<asp:DropDownList ID="DropDownList1" runat="server">
17             <asp:ListItem>+</asp:ListItem>
18             <asp:ListItem>-</asp:ListItem>
19             <asp:ListItem>*</asp:ListItem>
20             <asp:ListItem>/</asp:ListItem>
21         </asp:DropDownList>
22 &nbsp;<asp:TextBox ID="TextBox2" runat="server" Height="15px" Width="50px"></asp:TextBox>
23 &nbsp;<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text=" = " />
24 &nbsp;<asp:TextBox ID="TextBox3" runat="server" Height="15px" Width="50px"></asp:TextBox>
25     </form>
26 </body>
27 </html>
View Code

  后台代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 
 8 namespace WebService
 9 {
10     public partial class WebForm1 : System.Web.UI.Page
11     {
12         protected void Page_Load(object sender, EventArgs e)
13         {
14 
15         }
16 
17         protected void Button1_Click(object sender, EventArgs e)
18         {
19             string oper = DropDownList1.Text;
20             double a = Convert.ToDouble(TextBox1.Text);
21             double b = Convert.ToDouble(TextBox2.Text);
22             ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
23             switch (oper)
24             {
25                 case "+": TextBox3.Text = ws.addition(a, b).ToString(); break;
26                 case "-": TextBox3.Text = ws.subtract(a, b).ToString(); break;
27                 case "*": TextBox3.Text = ws.multiplication(a, b).ToString(); break;
28                 case "/": TextBox3.Text = ws.division(a, b).ToString(); break;
29                 default:
30                     break;
31             }
32             Response.Write(ws.HelloWorld(TextBox3.Text));
33         }
34     }
35 }
View Code

  建议各位小主,还是自己写写较好。

遇到的问题

  HTTP 错误 500.21 - Internal Server Error处理程序“NickLeeCallbackHandler”在其模块列表中有一个错误模块“ManagedPipelineHandler”

  

    原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装

  解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

  如果还不行,可检查IIS的应用程序池,是否使用集成模式,如果不是则改成集成模式

 

  至此,整个webservice入门就告一段落了,大家仅作参考,如有问题,快来指正...

转载于:https://www.cnblogs.com/HJL-Blog/p/4210565.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

透过WinDBG的视角看String

摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的. 本文将侧重在通过WinDBG来观察String在进程内的布局, 以此来解释C# String的一些特性. 问题 C# Stri…

ueditor富文本编辑器 修改框宽度和高度的方法

在使用ueditor的时候&#xff0c;用的textarea <textarea name"content" id"myEditor">这里写这条规则的回复内容</textarea> 给它加style"width:300" 属性的时候&#xff0c;发现不起作用。 正确的方法应该是&#xff1a; <scri…

Win32ASM学习[9]: 标志寄存器

TF(Trap Flag)——位8&#xff0c;跟踪标志。置1 则开启单步执行调试模式&#xff0c;置0 则关闭。在单步执行模式下&#xff0c;处理器在每条指令后产生一个调试异常&#xff0c;这样在每条指令执行后都可以查看执行程序的状态。如果程序用POPF、POPFD 或者ET 指令设置TF 标志…

JavaScript消息框

1.警告框 function myTest(){alert("这里的内容会弹出");} 2.确认框 其返回的值是 true 或 false 。 function myTest(){confirm("这里的内容会弹出");} 3.提示框 prompt prompt(参数1&#xff0c;参数2)&#xff1a;其参数1 是显示提示要输入的信息&…

.Net 事务

在分布式应用程序中&#xff0c;不可避免地会经常使用到事务控制。事务有一个开头和一个结尾&#xff0c;它们指定了事务的边界&#xff0c;事务在其边界之内可以跨越进程和计算机。事务边界内的所有资源都参与同一个事务。要维护事务边界内资源间的一致性&#xff0c;事务必须…

Android WifiDisplay分析一:相关Service的启动

网址&#xff1a;http://www.2cto.com/kf/201404/290996.html 最近在学习Android 4.4上面的WifiDisplay(Miracast)相关的模块&#xff0c;这里先从WifiDisplay用到的各个Service讲起&#xff0c;然后再从WifiDisplaySettings里面讲解打开wfd的流程。首先看下面的主要几个Servic…

Cortex-A15 Memory Hierarchy

ARM 平台为实现速度和成本的平衡&#xff0c;使用多个层次的内存架构。对于多核 CPU 组成的 SOC&#xff0c;每个CPU 内部都有一组高速缓存&#xff0c;包含&#xff1a;ICache、DCache 和 TLB。多个 CPU 共享一个更大的 L2 缓存。L2缓存再和 CPU 外部的DDR3 内存交互。ICache …

Android 图片的缩略图

<1>简介 之前往往是通过Bitmap、Drawable和Canvas配合完成&#xff0c;需要写一系列繁杂的逻辑去缩小原有图片&#xff0c;从而得到缩略图。 现在我给大家介绍一种比较简单的方法&#xff1a;&#xff08;网上有&#xff09; 在Android 2.2版本中&#xff0c;新增了一个T…

《JavaScript权威指南》学习笔记 第二天 下好一盘大棋

前段学习js的时候总是零零散散的&#xff0c;以至于很多东西都模棱两可。时间稍微一久&#xff0c;就容易忘记。最主要的原因是这些东西&#xff0c;原来学的时候就不是太懂&#xff0c;以至于和其他知识无法形成记忆链&#xff0c;所以孤零零的知识特别容易忘记。重温犀牛书&a…

SUID或SGID程序中能不能用system函数

system()函数的声明和说明如下&#xff1a; 注意它的描述那里&#xff0c;system()执行一个由command参数定义的命令&#xff0c;通过调用/bin/sh -c命令来实现这个功能。也就是说它的逻辑是这样的&#xff01; 进程调用system函数&#xff0c;system函数调用fork创建一个子进程…

Xamarin iOS编写第一个应用程序创建工程

Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后&#xff0c;就可以在Xamarin Studio中编写程序了。本节将主要讲解在Xamarin Studio中如何进行工程的创建以及编写代码等内容XamariniOS编写第一个应用程序创建工程本文选自Xamarin iOS开发实战大学霸。 1.3.…

Birt使用总结

把report放到其他服务器要重新建立Data Source ,这是配置&#xff0c;拷贝项目时不会同时拷贝 (1)在EXTJs中利用Report实现报表的刷新 Ext.getCmp("showview").body.update("<iframe idshowviewframe src" "> </iframe>"…

【线性代数公开课MIT Linear Algebra】 第二十三课 微分方程与exp(At)

本系列笔记为方便日后自己查阅而写&#xff0c;更多的是个人见解&#xff0c;也算一种学习的复习与总结&#xff0c;望善始善终吧~ 一阶常系数微分方程 Aududt 将一阶常系数微分方程转换为线性代数问题的关键在于常系数微分方程的解一定是指数形式的。那么我们的需要求解的东西…

iOS学习之基本概念

学习iOS最重要的是态度和兴趣&#xff0c;如果你对于学习始终抱有不断的热情和端正的态度&#xff0c;那么&#xff0c;无论是什么&#xff0c;你总会成功的&#xff01; 有一句话与大家共勉&#xff1a;过程中跌倒多少次都没有关系&#xff0c;重要的是&#xff0c;跌倒后你能…

【转】gvim配置及相关插件安装

0.准备软件及插件。(a)gvim72.exe 地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。(b)vimcdoc-1.7.0-setup.exe 地址http://prdownloads.sourceforge.net/vimcdoc/vimcdoc-1.7.0-setup.exe?download(c)ec57w32.zip 地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip(…

Android 高级编程 RecyclerView 控件的使用

RecyclerView 是Android 新添加的一个用来取代ListView的控件&#xff0c;它的灵活性与可替代性比listview更好。 看一下继承关系&#xff1a; ava.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.support.v7.widget.RecyclerViewKnown Direct …

jquery判断一个div的边界是否超出另外一个div的边界

摘要&#xff1a;本文简单介绍jquery判断一个div的边界是否超出另外一个div的边界&#xff0c;如果超出边界做出相应的处理。 1、实现效果 判断前 判断后 2、实现思路 实现类似的判断&#xff0c;主要是获取两个div在浏览器中的上下左右的四至&#xff0c;在jquery中&#xff0…

maven环境快速搭建(转)

最近&#xff0c;开发中要用到maven&#xff0c;所以对maven进行了简单的学习。因为有个maven高手在身边&#xff0c;所以&#xff0c;很快就上手了&#xff0c;我这里算是自我总结吧。关于maven是什么东东&#xff0c;请参考其它文章。 ----------------准备工作-------------…

cocos2d-x3.0 相对布局(一)

2dx相对布局和Android非常类似。假设前完成Android它应该是easy入门。Size widgetSize Director::getInstance()->getWinSize();Text* alert Text::create("Layout", "fonts/Marker Felt.ttf", 30 );alert->setColor(Color3B(159, 168, 176));aler…

夺命雷公狗---ECSHOP---08---商品页的拇改成星星

<strong>用户评价&#xff1a;</strong>{*---------商品评价星星开始----------*}<img src"./images/stars{$goods.comment_rank}.gif" alt"comment rank {$goods.comment_rank}">{*---------商品评价星星结束-------*} 这里主要是要有星…