问题标签 [service-reference]

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 回答
2700 浏览

wcf - 在同一项目中添加对 WCF 服务的服务引用

将服务引用添加到被引用的服务在同一个 VS 项目中定义的项目中是否是一种可接受的编程实践?(服务和服务参考在同一个项目中)

例子:

MyWebAppProj
-Services
--MyService
-Service References
--MyServiceServiceReference.MyServiceClient
-Default.aspx.cs 使用 MyServiceServiceReference.MyServiceClient

这背后的原因是可以将 Silverlight 应用程序添加到项目中。如果是这样,我们将不得不通过服务层公开所有业务逻辑方法,那么为什么不首先这样做并在任何地方使用它们以保持网页和 Silverlight 页面之间的标准化。

0 投票
1 回答
370 浏览

wcf - 具有相同服务的多个服务器

我在不同位置有十几台服务器,它们都运行相同的 Web 服务应用程序,但每台服务器都针对自己的 SQL Server 数据库。我正在编写一个使用 Web 服务的桌面应用程序。我想向用户展示网络中运行相同 wweb 服务应用程序的所有服务器的下拉列表。我是否必须为每个运行 Web 服务应用程序的服务器添加 ServiceReference,从而拥有与服务器一样多的代理?或者可以定义服务的单个实例并动态构建端点列表以从下拉列表中选择?

0 投票
3 回答
4186 浏览

wcf - 我可以在 WCF 中使用 netTcpBinding 添加服务引用吗?

是否可以在 Visual Studio 中添加服务引用,在使用 netTcpBinding 时生成本地代理类来调用 WCF 服务?

据我了解,服务引用方法需要服务公开一个 WSDL,这仅受 http 绑定支持,不是吗?

也许,我可以在开发中在本地添加服务引用,然后在生产中将配置切换为在运行时使用 nettcp?

我问的原因是因为我托管在 Windows 服务中(服务器 2003,所以没有 WAS,并且不能使用 IIS)。而且我们无法更改进行 HTTP 命名空间保留的权限......所以我们不能使用 HTTP 绑定。NetTcp 有效,但在这种特定情况下,我们来回传递的对象图涉及由 EDMX 模型在服务中生成的对象......所以我们不能在合约程序集中共享它。

提前致谢!

0 投票
1 回答
4880 浏览

.net - 为什么 Sharepoint 2010 Web Reference 有效,但 Service Reference 无效

Sharepoint 设置为使用 NTLM 身份验证。

当我引用http://myserver/Sites/Ops/_vti_bin/Lists.asmx?WSDL作为 Web 参考时,我可以调用这些方法并获得有效的响应。

当我引用与服务引用相同的 url 时,服务器在调用方法时会抛出异常。

我的帐户是 Sharepoint Farm 的管理员。

这是服务参考的 app.config(主要是自动生成的):

可悲的是,异常提供的唯一信息是:

“引发了‘Microsoft.SharePoint.SoapServer.SoapServerException’类型的异常。”

没有其他细节。

我正在使用的代码是:

有什么想法吗?我想使用服务参考而不是网络参考。

更新:

我尝试了 Rob 的建议并得到了这个错误:

未被识别为已知文档类型。来自每种已知类型的错误消息可能会帮助您解决问题: - 来自“ http://myserver/Sites/Ops/_vti_bin/Lists.asmx ”的报告是“无法识别文档格式(内容类型是“文本/ html; charset=utf-8').'. - 来自“DISCO 文档”的报告是“下载“ http://myserver/_vti_bin/Lists.asmx?disco ”时出错。”。- 请求失败,HTTP 状态为 404:未找到。- 来自“WSDL 文档”的报告是“无法识别文档格式(内容类型为 'text/html; charset=utf-8')。”。- 来自“XML Schema”的报告是“无法识别文档格式(内容类型为” 文本/html;字符集=utf-8')。'。

0 投票
2 回答
10953 浏览

web-services - 版本控制:svcmap、disco、xsd、wsdl、svcinfo 和数据源文件

我们有一个名为 Foo 的 web 服务。

所以有一个Foo.svc文件和Foo.svc.cs后面的代码。

我们添加了一个 silverlight 项目并希望使用 Foo.svc 服务,因此我们添加了一个服务引用并将其命名为命名空间 FooBar。

这将创建以下文件:

  • 参考.cs
  • 参考.svcmap
  • Foo.xsd
  • Foo.disco
  • 配置.svcinfo
  • Foo.wsdl
  • 还有各种 *.datasource 文件。

随着时间的推移,我们更新了 Foo.svc 并添加了更多的 Web 服务(方法和接口),并且 FooBar 目录中的文件数量正在增长。

我在这个目录中有 26 个 Foo(nn).xsd 文件 - 其中 nn = 1 到 26。

我的 configuration.svcinfo 是 configuration91.svcinfo。

我的问题是这个?这些文件中的任何一个都需要版本控制吗?每次进行构建\部署时它们都可以删除吗(只要您进行更新服务引用)?

0 投票
1 回答
1446 浏览

wcf - WCF 服务返回的对象层次结构与预期不同

0 投票
7 回答
18054 浏览

visual-studio-2010 - 为 WCF 服务添加服务引用时出现 VS 2010 错误“对象引用未设置为对象的实例”

我有一个 VS2010 (RTM) 解决方案,其中包含:

WCF 服务项目
Console WCF 客户端项目
DataContracts 和成员
的类项目 一些简单类的类项目

我在控制台客户端项目中成功添加了服务引用并运行了客户端。然后我做了一个很长的开发周期,反复修改服务,然后更新控制台服务参考。然后,我使用引用和 app.config 更改了项目的命名空间和程序集名称以及 .cs。我当然错过了一些东西,因为它不会构建,所以我最终删除了项目引用和服务引用,清理并成功构建。

然后我尝试再次添加服务引用,它发现了它,但在确定时抛出了“对象引用未设置为对象的实例”。在下面的答案中修复...

0 投票
1 回答
740 浏览

c# - 网络参考与服务参考。只有一个有效?序列化?

我有两个申请。

一个使用 webreference 到我的 web 服务,第二个使用 servicereference 到我的 web 服务。

有我正在调用的方法:

汽车有两个游泳池:

我正在调试这个 webMethod,然后......

最后,webservice 抛出很好的汽车集合,其中有一辆车:code="bmw",Type.Van

但是...具有 webrefence 的应用程序接收相同的集合,而具有 servicereference 的应用程序获取集合,其中字段代码为空...

调用服务引用:

调用网络服务:

0 投票
2 回答
1042 浏览

.net - 当我使用“添加服务引用”时,我看不到可选的方法参数

我正在开发 WCF 服务。我有一个服务操作Function getValues(Optional verbose as Boolean) as List(of String)

这有效:

' 首先,添加一个包含 iRM 接口的文件引用。
Dim ep3 As EndpointAddress
ep3 = New EndpointAddress("net.pipe://localhost/RM/RMPipe")
Dim netPipeRMClient As RMLib.iRM netPipeRMtClient = ChannelFactory(Of RMLib.iRM) _ .CreateChannel(New NetNamedPipeBinding, ep3)

但是,这不起作用:

' 使用添加服务引用获取客户端类型... Dim ep3 As EndpointAddress
ep3 = New EndpointAddress("net.pipe://localhost/RM/RMPipe")
dim netPipeRMClient as RM.iRMClient = _
new RM.IRMClient(New NetPipeBinding, ep3)
Dim foo as List(of String) = netPipeRmClient.getValues()

在最后一行,我收到一个编译时错误,上面写着“未为参数指定参数verbose”。

verbose参数在我的方法签名中明确定义为可选,但在我的 WCF 服务合同中,当我使用通过“添加服务引用”创建的客户端时,它似乎不是可选的。

有任何想法吗?

0 投票
3 回答
4203 浏览

date - 为什么在生成服务引用时 s:date 类型的 XSD 元素会变成字符串?

我正在尝试从 WSDL 和我希望是 DateTime 而不是字符串的所有属性创建一个新的服务引用。

例如,Contact 的这个 xsd 定义:

BirthDate 的类型是 s:date,但生成的类型(在 Reference.cs 中)是一个字符串。

如果我创建一个 Web 项目并将其添加为 Web 引用而不是服务引用,它会正确地变为 DateTime。我认为这与 wsdl.exe 和 svcutil.exe 在幕后工作的方式有关,但无论如何,我一直在试图弄清楚如何正确让 Visual Studio 识别该属性应该是 DateTime。