发布 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 属性值的架构
如果发布包含具有特定值的 minOccurs 或 maxOccurs 属性的架构,则这些值在已发布的 Web 服务公开的架构中可能会有所不同。 通常,所有 minOccurs 属性被转换为 0 (minOccurs=0) 而 maxOccurs 属性则转换为 1 或 unbounded(maxOccurs=1 或 maxOccurs=unbounded)。
发布信封架构
如果你有一个要发布为 Web Services 的信封架构,则需要手动修改生成的 Web 项目。
为信封架构修改生成的 Web 项目
打开 <
myWebService
>.asmx.cs 文件。编辑文件并将其更改为
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 文档中的 WebServiceAttribute 和 WebMethodAttribute 类。
必需的 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 属性的值,将服务器脚本超时减少到小于客户端请求超时的值。