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

wcf - 关于 WCF 代理会话的问题

您知道如何向客户端添加服务引用,然后它会创建这个漂亮的代理,以便您可以在服务器端调用方法吗?像这样的东西:

关于刚刚发生的事情,我有几个问题:

  1. 何时建立与服务器的会话?当我添加服务参考时?当我创建代理?或者当我调用该方法时?

  2. 如果我要创建另一个MyServiceClient实例,它将是我们之前创建的实例的单例副本(代理)还是完全是一个新实例?

0 投票
0 回答
915 浏览

c# - 动态更改 WCF 服务的 Reference.cs

我正在开发 WCF 服务(WCFManager),它将向其他服务发送请求并获得响应。为此,我开发了 WCF 服务。

试图完成以下(假设我的服务名称是WCFManager

到目前为止我做了什么

  1. 添加了创建 reference.cs 和 WCF 客户端的服务Service X引用WCFManager
  2. 使用通过添加服务引用生成的 WCF 客户端并Service X使用以下代码将请求发送到

    /li>

我想完成什么

  1. 我想在 , 的文件中添加一些配置设置,App.ConfigService X这样做了。Service YService Z
  2. 重用相同的 WCFManagerClient 将请求发送到Service YService Z通过从配置文件中读取端点信息。我的假设是,当我使用WCFManagerClient发送请求时,它使用在 WCFManager 服务的服务引用中创建的 reference.cs。如果我的假设是真的,我可以在运行时更改 reference.cs 以包含Service Y绑定信息将请求发送到Service Y并与Service Z. 这样我就不必为每个服务创建一个代理。
  3. 是否可以重用生成的相同 reference.cs 文件,但从配置文件中动态包含绑定信息。3.我无法控制Service YService Z,但我只知道服务端点信息,每个服务的方法名称和架构都是相同的。

如果有人已经使用 WCF 进行了这样的设计,我不确定这在 WCF 中是否可行,但对我的方法的任何建议都值得赞赏。

0 投票
3 回答
480 浏览

wcf - WCF 代理转换列表列出>

在我的 WCF web 方法中,我有一个接受字符串数组列表的操作合同,但是当我为此服务创建代理时,它会将其转换为字符串列表列表。

谁能告诉我是否有某种方法可以确保不会发生这种情况,并且我的代理还包含列表

谢谢

0 投票
0 回答
166 浏览

vb.net - 加速 WCF 客户端实例化?

假设调用了我的 WCF 客户端接口ISDK,并且调用了客户端对象本身ISDKClient,由svcutil.

当我像这样实例化 WCF 客户端时:

创建第一个客户端大约需要 1.5 秒,随后大约需要 300 毫秒。

如果我使用通道工厂方法:

第一次调用需要 1.5 秒,但随后的调用CreateChannel几乎是即时的。问题是 中的方法签名ISDK与下面列出的不同ISDKClientISDK具有请求/响应模式,而ISDKClient具有带参数的普通方法。

我可以控制如何svcutil生成代理文件,以避免接口中的请求/响应方法签名模式吗?根据 MSDN,方法签名应该匹配,即客户端应该为所有调用直接引用其接口(但这不是我的情况):

如果没有,是否可以使用已经存在的通道实例化 WCF 客户端?就像是:

如果没有,是否有任何其他方法可以提高在我的应用程序中实例化新 WCF 客户端的性能?假设所有可用的都是基于 HTTP 的 WCF 服务。

0 投票
1 回答
138 浏览

c# - WCF 代理在调用外部 API 后失败

我有一个使用 HttpClient 调用外部 REST API 服务的 Web API 控制器方法。然后,外部 REST 调用的结果通过调用其代理传递给 WCF 服务。

如果我先调用 WCF 代理,然后调用外部 REST 服务,一切都会按预期工作。如果我颠倒调用顺序,WCF 代理调用将失败,因为代理上的 InnerChannel (m_inner_channel = m_channel_factory.CreateChannel()) 为空。

这是一个用于说明目的的示例:

上面的代码有效,但是如果我在调用服务时在 WCF 代理的 InnerChannel (m_inner_channel = m_channel_factory.CreateChannel()) 下面实现代码为空:

如果我如下所示更改调用顺序,它会再次起作用:

谁能帮我确定这里发生了什么?如果我将 ConfigureAwait 值更改为 true,问题仍然存在,因此这不是上下文切换问题。

在同一个服务中有几个 Web API 方法调用上述 WCF 代理没有任何问题,只有在调用 WCF 代理对象之前调用外部服务时才会出现问题。

任何帮助和/或见解将不胜感激。

谢谢你,安德鲁

0 投票
1 回答
79 浏览

c# - 在我们应该采用哪种类型的 WCF 代理生成路径之间进行选择?

我是 WCF 服务的新手。我知道生成代理的三种方法。

  1. 使用服务参考
  2. 使用 SvcUtil
  3. 使用客户端库

但我很困惑在哪种情况下我应该使用哪种类型。就我而言,我必须为我没有服务代码的第三方服务生成代理。我不想使用添加服务参考,因为它给了我以下问题。在这个stackoverflow 问题中提到。所以我想使用clientBase。但我认为如果不使用服务参考,我就无法使用它。我很困惑我们什么时候应该选择哪种代理。

0 投票
2 回答
82 浏览

c# - 在客户端和服务器之间的每个 WCF 调用中共享常量

在调用 WCF 服务之前,WCF 客户端会计算几个整数常量。我希望这些整数常量在 WCF 服务上可用。请注意,我不希望将它们用作方法参数,因为无论服务中的方法如何,都需要这些常量。对每种方法都使用相同的参数将是多余的。

需要明确的是,客户端在进行 WCF 服务调用之前会保留计算“a”和“b”的值。一旦进行调用,服务就可以在整个调用过程中访问“a”和“b”。这类似于将它们用作方法的参数。这里唯一的区别是,WCF 服务中的每个方法都需要“a”和“b”。因此,与在 WCF 调用中的每个方法中添加“a”和“b”作为参数相比,我更喜欢一个更好的解决方案。

所以,假设我在 WCF 服务中有 3 个方法->

客户端将为每个 WCF 方法调用计算不同的“a”和“b”值。一种解决方案是保持这种格式的方法。

但是,如果可能的话,我想要一个更好的解决方案。

对不起这个长长的问题。

0 投票
1 回答
24 浏览

c# - WSDL 混乱——我在参考文献中看到的不是我在 wsdl 文件中看到的

我正在使用这个 wsdl 文件,但是我在我的 c# 参考文件中看到了不同的东西,这些文件是在我添加对它的引用时创建的。例如,EncyrptionClient在 wsdl 文件中找不到,但在Reference.cs文件中存在。与pingRequest. 我对以这种方式使用 Web 服务非常不熟悉,所以也许有些基本的东西我根本不知道。我相信 wsdl 文件中的内容将在参考文件中创建,但情况似乎并非如此。

要使用该服务,我所做的只是右键单击项目并选择添加连接的服务,然后使用 WCF 提供程序。

以下是我在 Reference.cs 文件中看到的图像: 在此处输入图像描述在此处输入图像描述

我错过了这个过程呢?

0 投票
0 回答
30 浏览

c# - 大型 WCF 代理引用类减慢应用程序启动速度

我尝试加快使用调试器运行应用程序的启动时间。我注意到创建一个类的对象需要大约 1.5 分钟,该对象用作 WCF 服务的代理。该类位于使用“添加服务引用”Visual Studio 工具生成的 reference.cs 中。太糟糕了,它有 72732 行代码,里面有几千个字段。我是 WCF 的新手,我想知道在这里提高性能的最快方法是什么?什么会是,也许不是那么快,但重构它的最佳方法是什么?有小费吗?

0 投票
1 回答
44 浏览

wcf - 如何手动创建 wcf 服务故障异常?

我想手动使 wcf 服务通道进入故障状态以测试单例对象。我尝试了很多解决方案,例如更改1.使用错误的服务主机名,2.错误的主机ip,3.减少执行时间以触发超时异常,4.除以零异常,5.抛出错误异常,6.null引用异常

但是没有什么可以使服务通道出现故障。好心劝告。提前致谢