码迷,mamicode.com
首页 > Web开发 > 详细

.Net下WebService的创建、发布及常见问题整理

时间:2018-06-20 14:31:56      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:reg   命令   soft   mes   The   就会   相加   pipe   4.0   

1.创建WebService

      以VS2013为例,打开VS2013,选择新建项目,Web分类下的“ASP.NET Web空应用程序”,注意选择上端的.net framework版本,这里我们选择的是4.0,然后确定。如下图:

技术分享图片

 

新建好项目后,在项目中添加一个新建项——Web服务,如下图:

技术分享图片

双击打开这个.asmx文件,我们可以看到对应.cs文件的代码,里面有一个默认HelloWorld函数,我们在其中手动添加一个Sum求和函数,最终代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebServiceTest
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </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 WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        /// <summary>
        /// 获取操作数a,b相加的和
        /// </summary>
        /// <param name="a">操作数a</param>
        /// <param name="b">操作数b</param>
        /// <returns></returns>
        [WebMethod]
        public string Sum(int a, int b)
        {
            return string.Format("{0}", a + b);
        }
    }
}

    此时,一个简单的WebService程序已经编写完成,生成代码,运行,会在浏览器中看到如下结果:

技术分享图片

 

    点击其中的HelloWorld和Sum函数,就可以调试相应的函数功能。

2.发布该WebService

     在该项目上右键,选择发布,然后在弹出的对话框中进行如下操作:

技术分享图片

 

随便写入一个配置文件名称,点击下一步

技术分享图片

 

之后,依次点击下一步,最后点击发布。

发布完成后,可以在目标位置D:\WebSiteRoot\WebServiceTest路径下看到相应的文件。

 

然后再配置IIS

打开IIS管理器,选择网站->右键添加网站 

注:(1)网站名称随便填写,应用池选择,选择程序运行需要的.Net FrameWork版本,一定要选择和新建项目是相同的版本

       (2)物理路径,选择上面WebService发布的程序的路径(D:\WebSiteRoot\WebServiceTest)

       (3)绑定,IP地址不填,或者填写本机IP地址,修改端口,端口不能其他程序使用过

        如下图所示:

技术分享图片

发布完成后访问方式为:http://192.168.2.123:8666/Service.asmx 或 http://localhost:8008/Service.asmx如果出现下图所示,说明发布成功。

技术分享图片

 

有时候也会遇到很多报错,下面将这些错误整理一下:

报错1:目录浏览问题:

这个错误可以忽略不修改,也可以根据网页中的提示修改:

技术分享图片

 

解决方法如下图:

技术分享图片

 

报错2:

打开WebService1.asmx出错,  “分析器错误消息: 未能创建类型“WebService1.Service1”。

解决:首先必须先在IIS在创建一个虚拟目录(这个就不用多说了吧),如果这个时候直接在浏览器里调用WebService就会出现上述错误。原因是必须为上面 创建的虚拟目录创建单独的应用程序,方法是右击虚拟目录,点击“添加应用程序...”,目录与刚才的虚拟目录物理路径要一致,添加完成后就可以正常使用 WebService了!

 

报错3:

HTTP 错误 404.3 - Not Found
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

 

解决办法如下:

iis7  :控制面板-》打开或关闭windows功能-》Internet信息服务-》万维网服务-》应用程序开发功能,勾选上“.net扩展性”和“ASP.NET”,保存后,重启IIS服务器即可。

iis8:控制面板-》打开或关闭windows功能-》Internet信息服务-》万维网服务-》应用程序开发功能,勾选上“.net Extensibility3.5” 及等带.net的选项,保存后,重启IIS服务器即可。

iis默认安装的时候是没有勾选这些选项的。

 

报错4:配置错误

说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 

分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。

源错误: 

行 24:             设置为 true。
行 25:         -->
行 26:             <compilation debug="true" targetFramework="4.0"/>
行 27:             <!--
行 28:             通过 <authentication> 节可以配置 ASP.NET 使用的 


源文件: E:\NET\CRM.Web\web.config    26 


版本信息: Microsoft .NET Framework 版本:2.0.50727.4961; ASP.NET 版本:2.0.50727.4955

 

解决方法:

该错误是由于IIS中选择的.net framework版本和项目中的不一致造成的,修改IIS中的版本即可。

技术分享图片

 

如果发现选择应用池时没有对应的framework版本,择在左侧的“应用程序池”中新建对应的版本即可。

 

问题5:

HTTP 错误 500.21 - Internal Server Error

处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

 

解决方法:

导致这种问题的原因是ASP.net没有成功注册到IIS中,很有可能是先安装.Net Framework,然后安装IIS

 管用员权限进入cmd命令提示符界面,执行命令"C:\Windows\Microsoft.NET\Framework\v4.0.30319",

运行:

aspnet_regiis.exe -i

技术分享图片

 

问题6:

技术分享图片

 

 

解决方法:

这个问题网上的解决方法很多,我试了一下都没用。

我的解决办法是,参照发布的时候,重新在IIS中新建了一个网站,选择了相应的路径什么的,就好了。

.Net下WebService的创建、发布及常见问题整理

标签:reg   命令   soft   mes   The   就会   相加   pipe   4.0   

原文地址:https://www.cnblogs.com/nuaahj/p/9203024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!