问题标签 [svcutil.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2060 浏览

.net - 使用 SVCUTIL 生成数据合约代码时出现问题

当我在 Visual Studio 命令提示符下运行以下命令时:

我收到以下错误:

我正在使用以下架构文件: http ://wiki.services.eoportal.org/tiki-download_wiki_attachment.php?attId=637&page=HMA-FO%20Deliverables

我怎样才能克服这个错误?

0 投票
3 回答
1647 浏览

c# - SvcUtil 生成自定义中间列表类型 - 任何方式只生成一个通用列表?

我正在使用 svcutil 从 XSD 生成数据合同类。这是 XSD 的一个片段:

不是将<Products>元素生成为Fulfilment对象的列表属性,而是生成的代码是这样的:

有没有办法让 svcutilProducts直接将属性生成为产品的通用列表,而不是创建从列表继承的“ProductsType”类并使用它?

0 投票
1 回答
1293 浏览

wcf - SvcUtil 和 /dconly 为未标记 DataContract 属性的数据类型生成 XSD

有没有人遇到过 Svcutil 和 /dconly 选项的问题,它为程序集中的每个数据类型生成元数据,即使它没有用 [DataContract()] 属性标记?它似乎还在为仅在代码中引用的类型生成元数据,例如 XmlDictionaryReaderQuotas,即使这些不是我在其上生成元数据的物理程序集的一部分。

一些信息:使用 .NET 4.0 版本的 SvcUtil。类是否为空都没有关系。在命令行中没有为 SvcUtil 指定引用。

命令行:

"C:\In Progress Work (Prospective)\Prospective Server\Prospective Server\Management\Prospective.Server.Server.NET40.Debug.AnyCPU.dll" /nologo /t:metadata /d:"C:\In Progress Work (预期)\预期服务器\预期服务器\管理" /dconly

0 投票
1 回答
2091 浏览

wcf - 为什么 VS“添加服务引用”不能为 svcutil 识别得很好的服务合同生成接口?

我有一个 WCF 服务,我希望客户端能够使用 Visual Studio 的“添加服务引用”功能进行引用。他们已经能够识别元数据端点,接口、方法和数据类型出现在“添加服务引用”对话框中,并且似乎可以顺利生成代理 - 但是在查看生成的代码文件或查看类时在对象浏览器中,没有从 ServiceContract 生成的服务接口 - 只有 DataContracts 被表示。当我从命令行将 svcutil 指向同一端点 URL 时,生成的文件确实包含接口。

  • 该服务本身已在生产中使用了一段时间,并且似乎运行良好
  • 它使用自定义绑定,但另一个服务使用完全相同的绑定配置(和其他配置设置),该服务似乎可以与添加服务参考一起正常工作
  • 不同的,此服务使用自定义行为(从 IServiceBehavior 派生的属性)。该接口也位于与具体服务类型不同的程序集中,尽管数据协定也是如此。

更新: 似乎是什么导致了这个问题,我不知何故忽略了这个接口上的一些方法有FaultContracts,这些FaultContracts引用的异常类型是[Serializable],而不是[DataContract](因为我认为任何源自异常的东西都必须是)。异常类型本身在生成的代码中表示,但它的公共属性不是(在 svcutil 或 ASR 生成的代码中)

0 投票
2 回答
1676 浏览

.net - 将 svcutil.exe 与 Web 代理一起使用

我有一个场景,我需要使用 svcutil.exe 使用服务,但服务的 wsdl 包含以下部分

问题是这些模式位置只能通过网络代理访问。如果我在 IE 设置中设置代理,我可以浏览 IE 中的架构位置。但看起来 svcutil.exe 在下载这些额外架构时会忽略这些设置。

下载额外信息时,如何让 svcutil.exe 使用我的 webproxy?

更新:实际上,在 Internet Explorer 中输入的代理设置适用于 svcutil.exe。是其他不相关的问题导致了我的问题。

0 投票
2 回答
4817 浏览

.net - 如何确定要在我的 svcutil 命令行中包含哪些架构文件 (xsd)?

使用 svcutil,我正在尝试为遵循OGC CSW 2.0.2 (07-006r1)目录服务标准的Web 服务端点生成代理类。

我已经下载了整个 OGC 模式文件并将它们放入我的“D:/temp/OGCSchemas/”目录中。

我感兴趣的模式是 CSW,但是 CSW 模式包含并导入其他模式,这就是我下载整个集合的原因。

例如,您将看到如下内容:

到目前为止,我的命令行如下所示:

但是我收到了很多看起来像这样的错误:

我相信这个错误告诉我在命令行中包含更多 xsd。

所以我的问题是:如何确定要在命令行中包含哪些 xsd?

我以为我为它所包含的每个目录都包含了一个 *.xsd,但显然不是。

编辑#1 包含 xsd 文件时的规则是什么?必须添加所有导入或包含的文件吗?有了这么大的模式,我想我需要构建一个工具来找到它们。

0 投票
1 回答
901 浏览

c# - svcutil 有时不会生成用 /xmlserializer 包装另一种类型的数组的复杂类型

我在基本类型 XSD 中有一个声明的元素“RecordRefSet”;它是“RecordRef”元素的容器元素。“RecordRefSet”元素在一组 WSDL 中的不同位置被引用。

当我的第一个项目从这些 WSDL 和 XSD 生成代码时,生成的代码包括一个名为“RecordRefSet”的类,它在各个地方都使用。

但是当我的第二个项目从这些 WSDL 和 XSD 的子集生成代码时,生成的代码不包含名为“RecordRefSet”的类,而是在第一个项目使用“RecordRefSet”实例的地方直接使用“RecordRef”数组班级。

我想知道什么决定了 SVCUTIL 何时决定生成“RecordRefSet”类以及何时决定直接使用“RecordRef”数组。

我已经检查过它在这两种情况下运行的是完全相同版本的 SVCUTIL,具有相同的命令行选项(生成服务合同、XMLSerializer)。唯一的区别是第一个项目包含我所有的 WSDL 和 XSD 文件,生成的代码总量更大,第二个项目使用 WSDL 和 XSD 文件的子集。

0 投票
1 回答
292 浏览

.net - 为什么svctuil生成的代理代码这么小?

我正在使用 svcutil 为以下Web 服务端点生成代理代码,该端点遵循OGC CSW 2.0.2 (07-006r1)目录服务标准。

我已经下载了整个 OGC 模式文件并将它们放入我的“D:/temp/OGCSchemas/”目录中。

我感兴趣的模式是 CSW,但是 CSW 模式包含并导入其他模式,这就是我下载整个集合的原因。

我的问题是:为什么生成的代理代码这么小?我不能用那个,可以吗?我收到的错误/警告是否中断了代码生成?

这是我的 svcutil 执行:

这是它生成的 ogc.csw.proxy.cs 代理文件。(很小)

编辑#1 阅读Yaron Naveh 的博客后,我意识到 svcutil 不喜欢这种 http 绑定(我猜是 OGC 指定的方式)。因此,我将 http-binding.wsdl 替换为 soap-binding.wsdl,一切正常,并且按预期生成了一个巨大的代理文件。

0 投票
1 回答
327 浏览

wcf - svcutil 忽略 WS-Trust 声明

场景:我正在编写一个 WCF 客户端来访问 Java/Metro Web 服务,该服务需要通过从 STS(也是 Java/Metro)获得的令牌进行身份验证。服务的 WSDL 中的相关策略片段如下:

请注意WS-SecurityPolicy 1.2 中定义的外部部分(这与之前放置 的版本不同<Claims>)。<RequestSecurityTokenTemplate><Claims>

当这样放置时,完全svcutil忽略<Claims>。但是,当放置在 RST 模板中时,它们会被复制到生成的配置中:

WCF 声称(没有双关语)支持 WS-SecurityPolicy 1.2,所以我想知道——这是设计上的错误吗?恕我直言,策略中的声明应始终出现在<additionalRequestParameters>绑定配置中。

0 投票
1 回答
580 浏览

wcf - 创建由 svcutil /datacontractonly 生成并用于 WCF Web 编程模型的共享数据传输类

我正在创建一组 Web 服务,它们共享一些常见的 xml 定义的数据元素。我想将这些实体分成一个通用模式、服务 1 特定模式、服务 2 特定模式等......服务特定模式将引用通用模式。我想使用 svcutil /datacontractonly 生成可用于使用 WCF Web 编程模型创建和序列化这些对象的类。我遇到的问题是,当我将公共模式导入服务特定模式时,公共模式实体类包含在为服务特定类生成的代码中。当单个客户端尝试将生成的实体类用于两个都使用公共模式实体的服务时,这会导致编译错误。有没有办法让 svcutil 只在生成的代码中包含服务特定的实体?我只想拥有一个通用 dll,其中包含服务可能引用的通用模式实体。