问题标签 [wcf-proxy]

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 投票
2 回答
462 浏览

wcf - WCF - 我可以从两个单独的接口生成一个代理吗

我在单个 WCF 项目中定义了两个单独的接口和两个单独的端点(.svc 文件)。这些接口共享项目中的公共对象。有没有办法创建一个结合了接口和所有对象的单一代理,因为它们是共享的?

谢谢!

0 投票
3 回答
2241 浏览

wcf - 在没有代理的情况下调用 WCF 服务方法

无论如何我可以在不添加服务引用甚至根本没有代理的情况下调用 WCF 服务。

0 投票
3 回答
853 浏览

wcf - 无法在 WCF 客户端中捕获自定义异常

我知道这个问题已经在很多场合被问过(相信我,我知道我几乎浏览过每一篇文章)。但是,我仍然无法让它工作......

我有以下简单的服务:

在执行中GetData如下:

如果我传入一个有效的 ID,我会得到适当的Data对象,但是,如果我传入一个无效的 ID(以触发 FaultException),它总是会以ProtocolException相同的消息传递给客户端:

远程服务器返回意外响应:(400) 错误请求。

我最初走的是实现的道路,IErrorHandler这就是我开始遇到问题的地方,所以为了从等式中消除这个问题,我实现了这个基本服务......但我什至无法让它工作。

在我的客户端上,我创建了一个服务参考并使用客户端代理,即

有什么我想念的吗?(我可以根据要求发布服务/客户端配置设置

注意:我注意到当您添加服务引用并生成客户端代理(我在 VS2010 上)时,您需要手动将WebGet/WebInvoke属性添加到生成的客户端,因为它似乎不会自动出现。

0 投票
2 回答
2898 浏览

.net - Silverlight 4.0 和 WCF 客户端代理 - 如何创建和关闭实例

Silverlight WCF 服务代理生命周期的主题对我来说不是很清楚。我在这里阅读了各种材料、资源和答案,但我仍然不完全理解使用它们的最佳方式。

我目前在 Silverlight 4.0 中使用自定义二进制绑定。

在 silverlight 中创建代理是一项昂贵的操作吗?我们应该尝试在代码中共享代理实例还是创建新的更好?如果我们共享以防多个线程访问它,我们是否应该进行锁定?

由于代理上的错误会使代理的状态出错,我认为共享代理不是一个好主意,但我读过创建是昂贵的,所以它不是 100% 清楚在这里做什么。

并且关闭 - silverlight WCF 服务客户端仅提供 CloseAsync 方法。此外,代理需要在关闭时使用某些逻辑(如果它们出现故障,我们应该调用在 Silverlight 中同步的 Abort(),如果不是,我们应该调用非同步的 CloseAsync 或什么?)。

在许多来自 MS 代理的官方 Silverlight 样本中,都没有关闭,这仅仅是材料的缺陷还是预期的方法?

主题对我来说非常重要,我想清楚地了解我目前没有的所有应该考虑的事情。

(我确实看到了这个问题What is the proper life-cycle of a WCF service client proxy in Silverlight 3?看起来很接近我,但我不能说我对答案的质量感到满意)

我真的很想看到使用、创建、关闭等 WCF 代理的示例代码,最重要的是解释了为什么这是最好的方法。我还认为(目前认为)由于问题的性质,应该有一个单一的、通用的最佳实践/模式——在 Silverlight 中使用(创建、重用、关闭)WCF 代理的方法。

0 投票
1 回答
2185 浏览

c# - 为什么 WCF 生成的代理用不同签名的新方法包装合约接口方法?

我正在使用 WCF 订阅 SQL Server 2008 SSRS Web 服务(.../reportserver/ReportService2005.asmx?wsdl),据我所知,默认的 WCF 配置选项。

但是,它在生成本地代理类时会做一些奇怪的事情。

我将使用 ListChildren 方法作为示例:

在客户端,WCF 会生成这样的接口,正如您所期望的:

它还生成一个实现该接口的“客户端”代理:

如您所见,客户端代理实现了接口,然后通过显式实现接口(因此您必须强制转换以获取接口方法)并另外使用 EditorBrowsableState.Advanced 属性来“隐藏”它以使其不被使用。

然后,它添加了一个使用“out”参数的额外包装方法。

如果不这样做,有没有办法停止,直接实现接口?

它在这里所做的事情会引导您使用带有“out”参数的包装器方法,然后您会发现您不能很容易地模拟服务,因为包装器方法不是虚拟的,也没有在任何接口中定义.

注意:我在这里使用 SSRS Web 服务作为示例,但我已经看到 WCF 在其他服务上也这样做了。

0 投票
1 回答
199 浏览

c# - 如何让 WCF 生成代理列表?

如何让 WCF 生成IEnumerable实际对象的列表或代理?我在自托管应用程序中执行此操作。

这是我所拥有的:

我希望 WCF:

  • 提供RemoteControlGroupImpl由合同定义的服务IRemoteControlGroup
  • 给我一个List<IRemoteControl>何时IRemoteControlGroup.GetInstances()被调用(在客户端上),其中列表的元素是实现的代理IRemoteControl(通过调用主机的实际IRemoteControl对象)。

我不希望 WCF 将实际RemoteControlImpl对象推过电线;我只是希望它推动实现IRemoteControl. RemoteControlImpl对象实际上包含本地系统的句柄(窗口句柄,因为我们的应用程序只公开一个 GUI 界面),因此不可序列化。返回的元素数量GetInstance()可能会有所不同。

我找到了这篇文章,这听起来像是我想要的。有点儿。但它并没有告诉我如何在代码中做到这一点;只是在配置中。它也不能完全描述我想要什么。服务的入口点提供代理;但我希望我的服务的入口点提供代理列表。

0 投票
1 回答
652 浏览

.net - 当我们重新使用 WCF 代理时,关闭并重新打开它是一种更好的方法吗?

我正在为我的 WCF 代理实现一个对象池。一旦使用了代理,如果我们关闭它会更好吗,有点钝化它,以便关闭它的活动连接。当代理对象被借用时,我们可以在传递它之前重新打开代理(激活)。这种方法会影响性能吗?

0 投票
1 回答
257 浏览

c# - WCF service as internal and internet exposed on different servers

I have to distribute several applications in 2 servers. Currently both servers have public IPs and they can be accesed across internet requests. Both servers are hosting several Web Applications. Now, I have to distribute those applications to have the front-end in the server (A) and the back-end in the second (B), so that the server "B" doesn't have public internet conection, all the request must enter by the server "A" first. I am going to use WCF to separate and communicate the presentation with the program's logic (between those servers). That's ok but, the problem is that the server "B" is hosting some public business WCF services consumed by external systems. Those business services need to be accesed directly across internet.

I have to provide a public service to recieve the calls and another in the server "B" to process the logic and perform database operations.

I don´t know what can be the best way to achieve this application distribution. I am taking create 2 services as the last option. I think there must be a better solution like configuration or with infraestructure.

I hope you can give some idea to solve my issue.

Thanks in advance. Israel.

0 投票
1 回答
4630 浏览

c# - 如何检查 WCF 服务是否可用?

我可以用来Proxy.Open()指示连接是否应该工作吗?我想先检查一个连接是否可用,如果没有,我不会在应用程序运行期间对服务进行任何调用。

注意:我只需要检查连接性,不一定和整个客户端服务往返。

我最终按照建议在服务中创建了一个 Ping() 方法。

仅供参考,仅使用 Open() 不起作用 - 即使服务处于脱机状态, Open() 也不会引发任何异常!

0 投票
2 回答
650 浏览

visual-studio-2010 - Visual Studio WCF Client creates classes with missing properties, adds ExtensionData property instead

I have a WCFService that returns sundry types of Data in this kind of a way:

And then

Also

And then

Now when I make a call to that service using a tool like SoapUI I get exactly the response I might expect.

However, when I use Visual Studio 2010 to create a Service Reference and make a call like this:

What I find is that response only has two properties, Status and ExtensionData. I have seen this described in other SE questions but the answer was always that something was missing a DataContract or DataMember on the data contracts. I definitely have those, so something else must be happening so that VS.Net can't see my classes. I have tried referencing the DTO library that contains these files and trying to configure the reference to match types with that library, but it makes no difference.

Where am I going wrong?