文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

.asmx处理程序提供的功能怎样自动生成WSDL

2023-06-18 00:53

关注

这篇文章将为大家详细讲解有关.asmx处理程序提供的功能怎样自动生成WSDL,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

自动生成WSDL

在您写好并部署了 WebMethod 之后,客户端需要明确知道为了与它成功通讯而必须使 SOAP 消息具有什么样的外观。提供 Web 服务说明的标准方法是通过 WSDL(以及嵌入的 XSD 定义)进行的。为了帮助适应这种情况,.asmx 处理程序自动生成可读的文档页,以及能准确反映 WebMethod 接口的 WSDL 定义。如果您对 WebMethod 应用了许多映射属性,则它们都会反映在生成的文档中。

如果您浏览 .asmx 文件,将会看到一个如图 2 所示的可供人工读取的文档页。此文档页是由一个名为 DefaultWsdlHelpGenerator.aspx(位于 C:\windows\Microsoft.NET\Framework\ v1.0.3705\config)的 .aspx 页生成的。如果您打开这个文件,将会发现这仅仅是一个标准的 ASP.NET 页,该页使用 .NET 反射生成文档。此功能允许您的文档总是与代码保持同步。您只需修改此文件即可自定义所生成的文档。

还可以通过在 Web.config 文件中指定一个不同的文档文件来避免在虚拟目录中生成文档:

< configuration>   < system.web>   < webServices>   < wsdlHelpGenerator href="MyDocumentation.aspx"/>   < /webServices>   ...

如果客户端对 .asmx 终结点发出 GET 请求,而且查询字符串中有 “?wsdl”,那么,.asmx 处理程序会生成 WSDL 定义,而不生成可供人工读取的文档。客户端可以使用 WSDL 定义来生成代理类,这些类可自动了解如何与 Web 服务通讯(例如,使用 .NET 中的 Wsdl.exe)。

自动生成WSDL:自定义过程

要自定义 WSDL 生成过程,可以编写一个 SoapExtensionReflector 类,并在 Web.config 文件中向 WebMethod 框架注册该类。然后,当 .asmx 处理程序生成 WSDL 定义时,它将调用反射器类,并使您有机会自定义向客户端提供的最终定义。有关如何编写 SoapExtensionReflector 类的更多信息,请查看 SoapExtensionReflectors in ASP.NET Web Services。

您还可以使用两种不同的方法来完全跳过 WSDL 生成过程。***种方法是,在虚拟目录中提供一个可供客户端访问的静态 WSDL 文档,然后通过将文档生成器从 Web.config 文件中删除来禁用它,如下所示:

< configuration>   < system.web>   < webServices>   < protocols>   < remove name="Documentation"/>   < /protocols>   ...

另一种自动化程度较之稍高的方法是,使用 [WebServicesBinding] 属性来指定由 WebMethod 类实现的静态 WSDL 文档在虚拟目录中的位置。您还必须使用 [SoapDocumentMethod] 属性为每个 WebMethod 实现的 WSDL 绑定指定名称。这样做之后,WSDL自动生成过程将导入静态 WSDL 文件,并在它周围包装一个新的服务说明。

目前,因为仍没有太多可用的 WSDL 编辑器,所以手工编写 WSDL 是极其困难的。因此,文档/WSDL 的自动生成是 WebMethod 框架中很有价值的一部分,没有它,许多开发人员的日子会很难过。

关于.asmx处理程序提供的功能怎样自动生成WSDL就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯