问题标签 [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 投票
3 回答
37283 浏览

c# - WCF 服务引用命名空间与原始命名空间不同

我的服务引用使用的命名空间有问题。我有许多 WCF 服务,比如命名空间MyCompany.Services.MyProduct实际的命名空间更长)。
作为产品的一部分,我还提供了一个示例 C# .NET 网站。此 Web 应用程序使用命名空间MyCompany.MyProduct

在最初的开发过程中,该服务作为项目引用添加到网站并直接使用。我使用了一个工厂模式,它返回一个实现MyCompany.Services.MyProduct.IMyService. 到现在为止还挺好。

现在我想更改它以使用实际的服务引用。添加引用并在命名空间文本框中键入后,它会在命名空间MyCompany.MyProduct.MyCompany.Services.MyProductMyCompany.Services.MyProduct中生成类。坏的!我不想仅仅因为我使用代理类而不得不在几个地方更改指令。所以我尝试在命名空间前加上,但这不被接受。usingglobal::

请注意,我什至还没有删除原始程序集引用,并且启用了“重用类型”,但显然没有进行重用。但是,我不想在我的示例网站中保留程序集引用,以使其正常工作

到目前为止,我提出的唯一解决方案是将我的 Web 应用程序的默认命名空间设置为MyCompany(因为它不能为空),并将服务引用添加为Services.MyProduct. 假设客户想要使用我的示例网站作为起点,并且他们将默认命名空间更改为OtherCompany.Whatever,这显然会破坏我的解决方法。

这个问题有好的解决方案吗?

总结一下:我想在原始命名空间中生成一个服务引用代理,而不引用程序集。

注意:我已经看到了这个问题,但是没有提供我的用例可以接受的解决方案。


编辑:正如 John Saunders 建议的那样,我已经向 Microsoft 提交了一些反馈:
Feedback item @ Microsoft Connect

0 投票
5 回答
13518 浏览

ssl - 有没有办法强制 svcutil.exe 忽略 SSL 证书问题?

我需要 svcutil.exe 为我生成代理类,但问题是 Web 服务只能通过 HTTPS 访问,并且 SSL 证书是自签名的。

如何强制 svcutil.exe 忽略此问题?

0 投票
5 回答
20103 浏览

c# - svcutil.exe 是 xsd.exe 的替代品吗?

我正在使用 xsd.exe 从 .xsd 文件生成一些 c# 类。我在此处和其他站点上遇到了相同的问题,其中 xsd.exe 为 .xsd 文件中的类型生成 Type[] 数组而不是通用 List 集合。有人建议,如果您将 /dataContractOnly 参数传递给 svcutil.exe,则可以使用 svcutil.exe 作为 xsd.exe 的替代品。但是,这些人似乎误会了,因为 svcutil.exe 实际上生成 System.Xml.XmlNode[] 数组属性,而不是基于 .xsd 文件中的架构创建类型。

例如,给定这个简单的 .xsd 架构:

'xsd.exe /classes Example.xsd' 生成:

'svcutil.exe /target:code /dataContractOnly /serializer:XmlSerializer /importXmlTypes /collectionType:System.Collections.Generic.List`1 Example.xsd' 生成:

  1. svcutil.exe 真的应该是 xsd.exe 的替代品吗?生成的输出似乎完全不同。

  2. 在这一点上,看起来我将不得不使用 xsd.exe 从我的 .xsd 文件创建类,然后手动调整代码以得到我想要的形式。我意识到使用纯粹生成的代码是理想的,但我想知道其他人是否使用 xsd.exe 作为起点然后从那里开始工作,或者我是否需要完全考虑另一种方法?

  3. Visual Studio 2010 中的 xsd.exe 是否有任何更新?

0 投票
1 回答
1721 浏览

wcf - 如何使用 svcutil.exe 导出单个合同的元数据?

我有两个作为接口实现的 ServiceContract。我只想导出其中一个的元数据。诀窍是两个接口都由同一个类实现。因此,我认为我不能使用 /excludeTypes。请在回答时包括示例语法。谢谢!

编辑:一位同事最近问我为什么这是必要的。原因是第一个ServiceContract 是针对 REST 服务的,为其导出元数据没有意义。因此,我生成了两个 wsdl 和 xsd 文件,仅因为第二个文件名附加了“1”而可以区分。这使得工具变得困难,并且给输出目录增加了更多的混乱。

我添加了一个赏金来尝试引起对这个问题的兴趣。

0 投票
2 回答
1916 浏览

c# - SVCUtil 或 WSDL 批处理

我得到了一组 170 个 WSDL 文件,我需要将它们转换为 C# 类文件。有没有办法批量处理这个?

0 投票
1 回答
625 浏览

wcf - svcutil 使用故障合同对服务失败

我们有一个 WCF 自托管服务,我们已经开发了一段时间。作为我们标准的一部分,我们定义了适用于操作的 FaultContract。

最近我们需要添加一个新的 ServiceContract,所以我们这样做并添加了一个简单的方法(void/no params)。一旦我们添加了这个合约,尽管 SVCUtil 将不再为我们生成代理。相反,它会出错并说元数据包含无法解析的引用:'net.tcp://localhost/MyService' 没有端点监听等等等等。

我们最终调试到操作合约有故障合约。一旦我们删除它,一切正常。这对我们来说很奇怪,因为..

1) 新服务合同与我们所有其他服务合同的地点相同

2)服务契约的实现者与其他所有服务契约的实现者相同(不要问)

3) FaultContract 与我们在其他地方使用的相同。

关于可能导致这种奇怪行为的任何想法?

0 投票
1 回答
1415 浏览

c# - C# 和 WCF - svcutil 没有为字符串 [] 正确生成包装器

我在 wcf 服务中有一个类,用于表示一组无效参数,

合同的(部分)定义为,

当我向我的测试项目添加服务引用时,它创建的包装器如下(与原始定义不同)。有人知道为什么吗 ?????????

0 投票
2 回答
449 浏览

c# - 外部服务的 WSDL 处理实践

我有一个项目,它依赖于 Oracle 托管 Web 服务(不是 WCF)。我有一份服务的 WSDL 及其相关的 XSD。

为此生成代理和数据合同程序集的正确方法是什么?

我从

对于我的每个 xsds。这会生成一堆具有共享类型冲突的类对象(所有类中的相同对象),因此我修剪了所有重复项,以便它们具有单个声明。

然后仅使用我的类文件“datacontracts.dll”构建该程序集

然后我生成了我的服务客户端

但这似乎并没有真正给出我想要的,因为它仍然导致服务客户端内的所有类的重复。

在从 XSD 生成的类中,我确实注意到每个类定义都有

我是否需要将该属性以它在重复类中显示的方式放置一次,以便在我将其设为单数类的每个类中?这样我就有

还是我接近这个错误?

0 投票
3 回答
1278 浏览

msbuild - Svcutil.exe MSBuild 任务

MSBuild 中是否有执行 svcutil.exe 的任务?还是某处有明确的包装任务?

0 投票
1 回答
1271 浏览

wcf - 从 WCF 客户端调用时,ASMX 服务参数(类型字符串)具有空值

我正在尝试使用带有 BasicHttpBinding 的 WCF 来使用现有的 ASMX 服务。我使用 SvcUtil 开始,只是将合同定义接口和配置提取到我的项目中,而所有默认配置值都由 SvcUtil 生成。以下是我目前拥有的:

合同:

和配置:

我遇到的问题是 asmx 服务接收到的 SendOrder 服务的 strOrder 的参数值始终为 null (我绝对不会在我最后提供 null :)

我错过了一些明显的东西吗?哪里是开始调试的好地方?

编辑使用 XMLSerializer 将序列化器切换到 SvcUtil