发布 Web Services 时的注意事项

本主题介绍你在发布 Web Services 之前应考虑的信息。

发布架构和 include 元素

在某些情况下,包含 include 元素的架构无法发布为 Web 服务。 在你完成 BizTalk Web Services 发布向导时,会出现错误。 包含如下这些限制:

  • 循环包含 (包含的架构具有 include 元素到 include 架构)

  • 未解析 的 schemaLocation 属性将导致错误

    有关 include 元素的限制的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62312“包含元素绑定支持”。

发布架构和 import 元素

BizTalk Web Services 发布向导与 .NET Framework 中包含的 XSD.exe 具有相同的限制。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62311“导入元素绑定支持”。

发布架构和 redefine 元素

BizTalk Web Services 发布向导与 .NET Framework 中包含的 XSD.exe 具有相同的限制。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62313“重新定义元素绑定支持”。

发布指定了 minOccurs 或 maxOccurs 属性值的架构

如果发布包含具有特定值的 minOccursmaxOccurs 属性的架构,则这些值在已发布的 Web 服务公开的架构中可能会有所不同。 通常,所有 minOccurs 属性被转换为 0 (minOccurs=0) 而 maxOccurs 属性则转换为 1 或 unbounded(maxOccurs=1 或 maxOccurs=unbounded)。

发布信封架构

如果你有一个要发布为 Web Services 的信封架构,则需要手动修改生成的 Web 项目。

为信封架构修改生成的 Web 项目

  1. 打开 <myWebService>.asmx.cs 文件。

  2. 编辑文件并将其更改为 bodyTypeAssemblyQualifiedName = <dll.name.version.>bodyTypeAssemblyQualifiedName = null

注意

如果先前的 .dll 文件仍然在 ASPNET 辅助进程中,你可能需要重置 Internet 信息服务 (IIS)。

Web Services 和 Web 方法属性

BizTalk Web Services 发布向导不允许您自定义在 ASP.NET 中使用的 Web Services 或 Web 方法属性。 某些属性会基于该向导提供的信息自动进行设置。 该向导不使用其他属性。

修改现有属性或者向 BizTalk Web Services 发布向导生成的 Web Services 添加新属性可能导致该 Web Services 无法正常工作。

有关 Web 服务和 Web 方法属性的详细信息,请参阅 .NET Framework SDK 文档中的 WebServiceAttributeWebMethodAttribute 类。

必需的 Web 方法

Web Services 必须具有至少一个 Web 方法。 如果不是至少具有一个 Web 方法,端口类型将不创建其操作。 XLANG/s 不支持没有操作的端口类型。

DBCS 字符支持

Web Services 不支持 Chinese/Japanese/Korean (CJK) Unified Ideograph Extension A 字符。

使用 Web Services 发布向导重新发布 Web Services

可以使用 BizTalk Web Services 发布向导重新发布已发布的 Web Services。 在 “Web服务项目 ”页上,可以选择“ 覆盖Web服务 ”选项。

该向导不存储先前所用的设置。 如果在重新运行向导时更改了设置,使用(调用)已发布的 Web Services 的任何 Web 客户端都可能失败。 你应该更新使用(调用)某个重新发布的 Web Services 的任何客户端的 Web 引用。

已发布 Web Services 的客户端可能不会收到服务器脚本超时错误。

在 BizTalk Server 中使用 Web 服务发布向导生成的 Web 服务默认配置为脚本超时值 110 秒。 这是 .NET Framework 的默认值。 HttpServerUtility.ScriptTimeout 属性。 使用 .NET Framework 的 Web 客户端默认配置为请求超时值为 100 秒。 这是.NET Framework HttpWebRequest.Timeout 属性的默认值。

如果使用 .NET framework 的 Web 客户端调用使用 BizTalk Server Web 服务发布向导生成的 Web 服务,则客户端可能无法收到服务器脚本超时错误,因为客户端请求超时是默认首先发生的。 若要解决该问题,可执行以下操作之一:

  • 通过增加客户端上的 HttpWebRequest.Timeout 属性的值,将客户端请求超时增加到大于服务器脚本超时的值。

  • 通过减少服务器上的 HttpServerUtility.ScriptTimeout 属性的值,将服务器脚本超时减少到小于客户端请求超时的值。

另请参阅

发布 Web 服务