Windows Web Services 编译器工具(WsUtil.exe)支持 服务模型 和 数据类型的序列化。 它处理 WSDL、XML 架构和策略文档,并生成 C 标头和源文件。 此工具类似于托管代码的 WSDL 编译器工具,而是针对本机代码。
为了支持 服务模型,WsUtil.exe 生成用于客户端和服务的标头。 它根据需要为客户端生成 C 代理文件和服务端的 C 存根文件。
为了支持 序列化,编译器为全局元素定义以及序列化引擎使用的代理文件中的所有类型定义信息生成元素说明的标头。
有关处理 WSDL 文件、XML 架构文件和 Web 服务策略文件的命令行选项,请参阅以下主题:
安全
使用 WsUtil 时,请注意以下问题并观察相应的预防措施:
- Wsutil 不会通过网络检索 XML 元数据,wsutil 不会解析输入元数据文件中的导入和/或包含语句。 Wsutil 打开并读取 wsdl、xsd 和策略文件。 XML 元数据不可篡改。 确保仅使用 wsdl、xsd 和策略文件从受信任的源获取,并确保在使用这些文件之前和之后防止文件被篡改。 仔细查看输入文件的内容,并验证文件的内容是否安全,以便在应用程序中使用。 Wsutil.exe 不对元数据文件的真实性进行任何验证。
- Wsutil 生成头文件和存根文件,这些文件不可篡改。 你需要对 wsutil.exe 生成的源文件设置正确的级别访问权限,以防止对这些文件进行未经授权的访问。 Wsutil 使用 System.IO.StreamWriter 创建输出文件。
- 用户需要注意 Wsutil 可以覆盖其本地文件,并且应小心使用 /out 开关为输出文件指定安全文件名和目录。
- Wsutil 或 wsutilhelper.dll 加载在 wsutil.exe中,在受到攻击或处理大量输入元数据时,可能会意外终止或消耗大量系统资源。 该工具设计为仅在开发期间使用此工具,只应将此工具用作开发时间工具。 在中间层中处理策略信息可能不安全。
- Wsutilhelper.dll 帮助程序 DLL 加载到托管 wsutil.exe 中以处理策略信息。 用户应确保二进制路径中不存在具有相同文件名的恶意二进制文件。 同样,用户应该确保在生成环境中正确设置二进制路径,即不存在具有相同“wsutil.exe”名称的恶意二进制文件。
- Wsutil 会尽可能为作和结构字段生成 SAL 注释。 wsutil 生成的文件的用户应遵循通过 SAL 注释指定的要求。
相关主题