asp.net WebService如何去掉asmx后缀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net WebService如何去掉asmx后缀相关的知识,希望对你有一定的参考价值。

因为调用地址已经确定:http://<host:port>/*/Service?WDSL
,不能有asmx后缀。
求各位大神帮帮忙啊,
最好能写个小Demo,发到邮箱里799309118@qq.com,感激不尽啊。

参考技术A 关于这个,按你的要求,应该是无解。

因为你这个要求是在试图修改.net服务规则,或叫IIS运行条件。
按目前要求,只有asmx请求才会被识别为 服务。才能按相应的服务策略运行。

个人感觉非要实现你的要求,也不是没有办法。

把你的URL在服务器端映射到 asmx .或许就能解决,但可能会有很多地方要处理。

请尝试一下,同关注进展。
参考技术B URL rewrite本回答被提问者采纳 参考技术C 风光好地方如何

asp.net WebService的一个简单示例

  不同的系统之间经常会需要数据的交换对接,而Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。【百度百科】

在此记录一下asp.net webservice的简单示例:

1:首先在项目中添加web服务(即asmx文件)。

2:添加后asmx文件默认代码如下。

3:自定义一个test接口方法,(Description = "测试服务是否通")为部署之后方法的描述信息。

 

        [WebMethodAttribute(Description = "测试服务是否通")]
        public string test()
        {
            return GetResult(true, "连接成功", "", "test", "");
        }

        public string GetResult(bool status, string description, string UserData, string MethodName, string XMLPars)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<?xml version=\\"1.0\\" encoding=\\"gb2312\\"?>");
            sb.Append("<DataBody>");
            sb.Append("<DATA>");
            sb.Append("<ReturnInfo>");
            sb.Append("<Status>" + status.ToString() + "</Status>");
            sb.Append("<Description><![CDATA[" + description + "]]></Description>");
            sb.Append("</ReturnInfo>");
            if (status && UserData != "")
            {
                sb.Append("<UserArea>" + UserData + "</UserArea>");
            }
            sb.Append("</DATA>");
            sb.Append("</DataBody>");

            //保存接口调用日志
            //string ClientIP = Context.Request.ServerVariables.GetValues("REMOTE_ADDR")[0];
            //DB_XXTWebServiceLog.InsertLog(ClientIP, MethodName, System.Text.Encoding.Default.GetBytes(XMLPars), System.Text.Encoding.Default.GetBytes(sb.ToString()), status ? "1" : "0", description);

            return sb.ToString();
        }

3:编译项目,并部署至IIS,新建应用程序池,添加应用程序。

4:在浏览器中即可访问该服务

5:可以在浏览器中调用test方法来测试服务是否通

 6:具体如何调用,不同的语言有不同的形式。至于如何在webservice中使用xml传输数据见 WebService,ASMX文件使用XML格式数据传递参数、验证与获取XML格式返回值的一种方式

以上是关于asp.net WebService如何去掉asmx后缀的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Asp.net 设置 .asmx webservice 启用跨域

如何将xml文档作为字符串传递给asp.net webservice

如何在 c# ASP.Net 中使用有效的 JSON 输出创建 JSON WebService 并使用 JQuery/Ajax 进行查询

asp.net ajax客户端框架如何调用Web Service

ASP.NET WebService - 实体框架

在 asp.net 中阻止对 WebService.asmx 的访问