问题标签 [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 回答
1573 浏览

xml - Svcutil 生成具有多个端点的错误配置

我有一个 WCF 服务,它公开了一个肥皂和一个 xml 端点。当我使用 svcutil 在客户端生成代理代码时,生成的配置包含两个导致客户端失败的端点。如果我编辑 web.config 文件并删除第二个端点(使用自定义绑定),所有工作都按预期工作。有没有办法让 svcutil 生成一个可以正常工作的配置,这样我就不需要每次都手动编辑文件?

客户端错误:

无法加载合同“MyNamespace.ITestService”的端点配置部分,因为找到该合同的多个端点配置。请按名称指明首选端点配置部分。

svcutil 命令:

生成的客户端配置:

0 投票
1 回答
3250 浏览

wcf - WCF ServiceContract 和 svcutil 问题

我有一个自动生成的公共接口 bu svcutil:

然后我有 asmx Web 服务继承它并且工作正常。我正在尝试将其转换为 WCF,但是当我使用 ServiceContract 检测服务(在 asmx.cs 代码后面)时:

我还创建了 .svc 文件并在配置文件中添加了 system.serviceModel 设置。目标是将 asmx 服务迁移到 WCF 服务。

我有这个错误:

MyService 类型的服务类既定义了一个ServiceContract,又从MyInterface 类型继承了一个ServiceContract。契约继承只能在接口类型之间使用。如果一个类用 ServiceContractAttribute 标记,它必须是层次结构中唯一具有 ServiceContractAttribute 的类型。

asmx 服务仍然可以正常工作。只有 .svc 给了我问题。我的问题是如何解决这个问题。MyInterface 是一个接口,所以我看不出问题出在哪里以及为什么我得到了错误。

注意我不想更改 MyInterface,因为它是从我的 wsdl 架构中的 svcutil 自动生成的,我不希望手动编辑此接口。整个想法是让服务类型自动从 WSDL 生成,并通过手动编辑来节省我的团队开发工作量。

任何帮助表示赞赏。

0 投票
7 回答
37771 浏览

.net - .NET 4.0 的 Svcutil.exe?

我试图使用 svcutil.exe 为服务生成代理类,但是当我使用该/reference选项来引用为 .NET 4.0 构建的程序集时,出现错误。

无法加载文件或程序集 [...] 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

所以看来我使用的是旧版本的 svcutil.exe。我正在使用"C:\Program Files\Microsoft SDKs\Windows\v7.0A我能找到的最新版本。我应该在某个地方使用更高版本吗?

0 投票
3 回答
19188 浏览

wcf - 将用户名和密码传递给 svcutil.exe?

我们有目前使用用户名和密码保护的 OSB 服务。我在尝试使用 svcutil 生成服务代理时收到 401 未授权。我知道您需要设置一个 svcutil.exe.config 文件,但除了通过证书的示例之外,我找不到任何示例。

有谁知道如何使用 svcutil 发送用户名和密码?

0 投票
1 回答
1720 浏览

wcf - 将证书传递给 Svcutil 以生成 OSB 服务的代理

我们希望实现从 WCF 到 OSB 服务的双向 SSL 安全性。我们已成功部署证书,因此当您使用 IE 浏览服务时,您会收到相应的证书提示,然后它会立即将您带到 WSDL。

但是,当您尝试使用此 MSDN 文章中步骤 8 和 9 中定义的 svcutil 生成代理时。

http://msdn.microsoft.com/en-us/library/cc949005.aspx

我得到错误:

收到操作“Get”的回复消息,操作为“ http://schemas.xmlsoap.org/ws/2004/09/transfer/Get ”。但是,您的客户端代码需要操作“ http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse ”。

OSB 服务设置为使用 Soap 1.2,我们使用的 svcutil.exe.config 与本文相同,但 findValue 和 x509FindType 除外。相反,我们使用 FindByThumbprint 指向“My”商店名称和“CurrentUser”商店位置。证书在那里,与我们从 IE 提示符中选择的证书相同。

0 投票
4 回答
27662 浏览

c# - WCF - 读取 XML 数据时已超出最大可命名字符计数配额 (16384)

我有一个使用 wsHttpBinding 的 WCF 服务。服务器配置如下:

在客户端,我包含了 WCF 服务的服务引用。如果我的 IService 中的功能有限,比如 90 操作合同,但如果添加一个操作合同而不是我无法更新服务引用,我也无法添加该服务引用,它会很好用。在本文中提到,通过更改这些配置文件(即 devenv.exe.config、WcfTestClient.exe.config 和 SvcUtil.exe.config)它会起作用,但即使在这些配置文件中包含这些绑定仍然会弹出错误说

下载“ http://10.0.3.112/MyService/Service1.svc/mex ”时出错。请求失败,HTTP 状态为 400:错误请求。元数据包含无法解析的引用:' http://10.0.3.112/MyService/Service1.svc/mex'。XML 文档中存在错误 (1, 89549)。读取 XML 数据时已超出最大可命名字符计数配额 (16384)。nametable 是一种数据结构,用于存储在 XML 处理过程中遇到的字符串 - 具有不重复元素名称、属性名称和属性值的长 XML 文档可能会触发此配额。通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxNameTableCharCount 属性,可以增加此配额。第 1 行,位置 89549。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

知道如何解决这个问题吗???

0 投票
1 回答
756 浏览

c# - 使用 Svcutil 创建代理类不包含 XmlIgnore 属性

有没有办法让 SvcUtil 包含 [XmlIgnore] 属性?

我们在代理类中需要这个属性(因为我们有 XmlSerialization 不喜欢的字典),但是 SvcUtil 在生成的代理中不包含这些属性。

0 投票
2 回答
2216 浏览

c# - WCF XmlSerializer 程序集没有加速第一个请求

我正在使用 svcutil 为客户端 java webservice wsdls 和 xsd 文件生成代理类。对每个服务代理类的第一次调用需要很长时间。我希望通过自己生成 XmlSerializers 程序集来加快速度(基于文章如何:使用 XmlSerializer 改进 WCF 客户端应用程序的启动时间),但是当我第一次调用每个服务时仍然需要相同数量的时间。以下是我正在遵循的步骤:

然后,我创建了一个标准的控制台应用程序,它同时引用了Blah.dllBlah.XmlSerializers.dll. 然后我会尝试类似的东西:

我知道问题不在于服务器端,因为直到大约 29 秒我才看到 Fiddler 发出的请求。对每个服务的后续调用需要 < 1 秒,这就是为什么我希望主要的减速是 .net 运行时生成 xmlserializer 代码本身,编译它并加载程序集。我认为这将是对每个服务的第一次调用很慢而其余调用很快的原因。不幸的是,我自己生成代码并没有加快速度。有谁看到我做错了什么?

0 投票
1 回答
657 浏览

c# - svcutil.exe 排除类型问题

我的服务使用在另一个 DLL 中定义的类型 Foo,并且我的客户端也使用该 DLL 来获取该类型。我不想为该类型生成代理类,而是希望代理代码仅引用真实类型。我可以通过在正在运行的服务上使用 WSDL.EXE 生成代理、从中手动编辑部分类 Foo 定义并添加 Using 语句来手动完成此操作。如果可能的话,我想在没有手工编辑的情况下做到这一点。

似乎答案是使用 SVCUTIL.EXE 而不是 WSDL.EXE。有两个有趣的选项:/R 和 /ET。我尝试将 /ET:Foo 和 /ET:My.FQN.Util.Foo 和 /ET:www.my.com.the.servicenamespace.Foo 放入,并将 DLL 文件名添加到选项中。但是创建的 ServiceWithFoos.cs 代理类没有任何变化。Foo 的部分类定义仍然存在。

我在正确的轨道上吗?我究竟做错了什么?

0 投票
2 回答
677 浏览

wcf - slsvcutil.exe 代理和接口

是否可以在使用 slsvcutil.exe 通过命令行生成代理时不让代理文件以异步方式输出接口。

例如,如果我在接口的服务器端有一个函数“foo()”,当我使用 Slsvcutil.exe 生成代理时,它会在代理中的接口定义中创建两个函数,名为“BeginFoo()”和“EndFoo” ()”。

我想要的只是“Foo()”,我不需要其他两种方法。

这可能吗?我将代理与 Monotouch 一起使用,这就是为什么我需要使用 Slsvcutil.exe 但不需要异步方法的原因。

谢谢!