Web 服务不处理来自具有代理类的同一应用程序的多个同时请求

2024-03-24

我有一个应用程序调度多个任务,这些任务调用不同的 Web 服务,其中一些是相同的 Web 服务,但方法不同。每个任务都以一定的间隔执行,并且每个任务都在自己的线程中运行。为了获取对 Web 服务的引用,我有一个 wsdl.exe 生成的代理类,该代理类在每个任务中实例化并始终进行处理。然而,在运行应用程序时,任务实际上在服务请求时相互等待,Web 服务在完成处理来自任务 x 的请求之前不会处理来自任务 y 的服务请求(我可以看到这一点,因为来自任务 x 的服务调用可能需要5 分钟,任务 y 100 毫秒,但是如果 y 在 x 运行时启动,则它在 x 完成后 100 毫秒完成)。

这是来自任务的代码(在其自己的线程内运行):

public class TaskX : TaskWrapper
{
    public TaskX(Guid id, string name, EventQueue eventqueue)
        : base(id, name, eventqueue)
    {
    }

    protected override void DoTask()
    {

        try
        {
            var factory = new ServiceReferenceFactory();
            using (var reference = factory.GetServiceReference())
            {

                bool result;
                bool isSpecified;

                reference.Run(out result, out isSpecified);
            }
        }
    }
}

这是上面提到的工厂方法的代码:

public ProxyClassService GetServiceReference()
    {
                    var refer = new ProxyClassServiceNamespace.ProxyClassService();
                    refer.Timeout = 1000 * 60 * 60;

                    return refer;
    }

有谁知道我为什么会遇到这种行为?

EDIT:

以下是我将 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 添加到 wcf 服务的实现后任务的一些日志。我没有对 Visual Studio 2008 中创建的 WCF 服务进行任何配置更改。

15:02 - 任务开始:TaskXWithInternalException

15:02 - 任务开始:TaskYQuickOne

15:02 - 任务结束:TaskYQuickOne 任务经过时间:00:00:00.1214762

15:02 - 任务开始:TaskZSlowOne

15:03 - 任务开始:TaskXWithInternalException

15:03 - 任务开始:TaskYQuickOne

15:05 - 任务结束:TaskZSlowOne 任务经过时间:00:03:11.6510947

15:05 - 任务结束:TaskYQuickOne 任务经过时间:00:02:09.7311905

15:06 - 任务开始:TaskYQuickOne

15:06 - 任务结束:TaskYQuickOne 任务经过时间:00:00:00.0546980


这可能与并发/实例设置 http://msdn.microsoft.com/en-us/library/ms731193.aspx在您的 WCF 服务上。

如果您的所有调用都转到同一个服务实例(例如InstanceContextMode = PerSession or Single),那么通常您需要确保您已设置ConcurrencyMode to Multiple,否则调用将以序列化方式提供服务。

您能否告诉我们更多有关 WCF 服务(而非客户端)如何设置的信息?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web 服务不处理来自具有代理类的同一应用程序的多个同时请求 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • Selenium Python 最小化浏览器窗口

    我知道如何从驱动程序对象调用最大化窗口的方法 driver maximize window 但是当我需要最小化浏览器窗口 隐藏它 时应该使用什么方法呢 实际上 驱动程序对象没有最大化窗口属性 我的目标是在浏览器窗口中默默地工作 我不想在我的
  • 如何从 docker 镜像中删除图层?

    我通过增量提交构建了一个 docker 映像 这导致在我的 docker 镜像中创建了很多层 随后镜像的大小变得非常大 有没有办法去除图层并从而减小图像的大小 任何帮助 将不胜感激 您可以尝试导出图像 然后再次导入 通过这种方式 所有图层都
  • TortoiseMerge 可以用作 Windows Git Bash 的 difftool 吗?

    我刚刚开始使用 Git 我想使用 TortoiseMerge 作为 difftool 和 mergetool In my HOME gitconfig我有以下部分 我已经删除了这个问题的用户和颜色部分 merge tool tortoise
  • 如何在android中以编程方式将视频发送到电子邮件

    我想从我的 Android 应用程序将 30 秒的视频发送到电子邮件 我已发送带有图像附件的电子邮件 但它不适用于视频 请帮助我做到这一点 提前致谢 send setOnClickListener new OnClickListener O
  • 针对依赖扩展对象的任务的 Gradle 插件最佳实践

    我希望获得有关定义依赖于外部状态的插件任务的最佳实践的反馈 即在引用插件的 build gradle 中定义 我使用扩展对象和闭包来推迟访问这些设置 直到它们需要且可用为止 我也对任务之间共享状态感兴趣 例如将一个任务的输出配置为另一任务的
  • 标签中提取内容 C# RegEx

    我有一个代码 string tag div string pattern string Format lt 0 gt
  • 2 个具有相同名称的 iPhone 应用程序。这怎么可能?

    As per iTunes Connect 开发人员指南 https itunesconnect apple com docs iTunesConnect DeveloperGuide pdf 1 应用程序名称应清晰 2 应用程序名称不应通
  • 根据属性值更改 VisualState

    如何根据 WP7 上的属性值更改 VisualState 我尝试使用 MVVM 模式 当我的模型加载时 我希望我的视图进入特定的 VisualState 在 Silverlight 中 我们有属性更改的触发器 但在 WP7 中没有 PS 我
  • 为什么 getline() 函数不起作用,除非我在函数 chamodifier 中调用它两次[重复]

    这个问题在这里已经有答案了 怎么了如果我在字符修饰符函数中仅使用一次 get line 函数 编译器将忽略它 除非我调用该函数两次 为什么我不能只使用一次 我尝试使用其他方法 它有效 但我想了解这个 我现在只是随机编写一些内容 这样添加更多
  • Laravel 5.5 Eloquent WhenLoaded 关系

    On the Laravel 5 5 文档 https laravel com docs 5 5 eloquent resources under 条件关系 它说 whenLoaded 方法可用于有条件地加载关系 我在我的代码中尝试过 pu
  • UIView 与容器视图

    这就是我想要解决的问题 In each viewController我正在尝试插入广告和实际的控制元素 我在 raywenderlinch com 上完成了几个教程 以了解人们如何专业地将广告放入他们的应用程序中 他们使用 UIViews
  • Delphi/GDI+:设备上下文何时创建/销毁?

    通常在 Delphi 中使用 GDI 你可以使用绘画盒 并在期间进行绘画OnPaint event procedure TForm1 PaintBox1Paint Sender TObject var g TGPGraphics begin
  • 通过 TCP 的 C# 字节流

    我是一名初级工程师 希望就如何解决这个问题向这里所有有经验的人寻求一些建议 我被分配了一个项目来创建一个通过 TCP 进行字节流传输的服务器 客户端应用程序 我们公司处理带有 GPS 和调度软件的 2 路无线电 我们想用它制作一个服务器 客
  • Android - 嵌套片段参与填充选项菜单

    我正在实现新的嵌套片段功能 但遇到了问题 我的观点基本上是这样的 主要活动 A 其中包括一个片段 B 这个片段 B 包括一个寻呼机适配器 它有 3 个页面 每个页面都是一个片段 C 还 以前对于新的 getchildfragmentmang
  • 正则表达式以一致的顺序提取字符串的不同部分

    我有一个字符串列表 my strings 2002 03 04 with Matt Important 2016 01 23 with Mary with Tom on 2015 06 30 我想提取 日期 始终采用 yyyy mm dd
  • 如何在 React 中使用增量运算符

    为什么当我做的时候this setState count this state count 2 它正在工作 但是当我这样做时 this setState count this state count 它不起作用 为什么 以及如何解决它 完整
  • python numpy MKL 错误

    我正在运行 ActiveState Python 3 2 并收到此神秘错误 D code gt python ActivePython 3 2 1 2 ActiveState Software Inc based on Python 3 2
  • 仅使用 GCM 开发 Android 聊天应用程序(放弃 XMPP)是否合适?

    很多应用程序 例如WhatsApp依靠GCM当设备空闲或应用程序在后台运行时向设备发送通知 这GCM消息只是告诉应用程序从服务器同步 然后XMPP用于进行实际的聊天 传递有效负载 但这是一个好的决定吗 GCM发送消息 因此 就我而言 当一个
  • 多个定义错误:一个在我的文件中,一个在 moc 文件中。

    我有一个名为 FindAndReplaceBar 的类 其实现是这样的 include FindAndReplaceBar h include
  • Web 服务不处理来自具有代理类的同一应用程序的多个同时请求

    我有一个应用程序调度多个任务 这些任务调用不同的 Web 服务 其中一些是相同的 Web 服务 但方法不同 每个任务都以一定的间隔执行 并且每个任务都在自己的线程中运行 为了获取对 Web 服务的引用 我有一个 wsdl exe 生成的代理