问题标签 [asynchronous-wcf-call]

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

wcf - 在异步模式下调用服务时出错

Stackoverflow 绝对是最快的论坛,所以在 WCF 论坛上发布这个问题后,我决定来这里。

我有一个 wcf 服务,它返回一个字典(IDictionary)并且工作得很好。现在我想添加在异步模式下调用该服务的功能,但是当 BeginMethod 被执行时,我得到以下异常:

类型 System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[TransferProp, Contracts, Version=10.1.0.0, Culture=neutral, PublicKeyToken =6f5bf81c27b6b8aa]] 不受支持,因为它实现了 IDictionary。

那是怎么回事?

0 投票
2 回答
382 浏览

wcf - 在 Silverlight 中删除过时的 WCF 响应

在 Silverlight 中,我遇到了以下问题。如果您向 Web 服务发出多个请求,则响应可能不会按顺序返回。这意味着如果第一个请求比以下请求花费的时间更长,它的响应将最后返回:

现在在我的场景中,我只对最近发出的请求感兴趣。所以 A 和 B 应该被忽略,而 C 应该被保留为唯一接受的响应。

管理此问题的最佳方法是什么?到目前为止,我想出了这个解决方案:

发送请求时将生成的 GUID 作为用户对象传递,并将该值存储在某处。由于所有响应都将包含它们各自的 GUID,因此您现在可以过滤掉过时的响应。请求计数器而不是 GUID 也可以工作。

现在我想知道是否有更好的方法来解决这个问题。也许有任何开箱即用的功能可以使这成为可能?欢迎任何想法..

0 投票
1 回答
3394 浏览

asp.net - 中止异步 Web 服务调用并重定向到另一个 URL (ASP.NET Ajax)

在我的 web 应用程序中,我有一个从代码隐藏生成并绑定到转发器控件的链接列表。单击链接会打开一个弹出窗口,在该窗口中,除了显示一些数据外,还会对 WCF 服务进行异步调用(通过 javascript 代理)。该服务反过来调用另一个可能需要很长时间才能响应的第三方 Web 服务。我正在使用 IE6,这是一个不可避免的要求。

现在,如果用户决定不等待调用完成并关闭弹出窗口,我会在 onunload 时中止此服务。问题是,如果用户在之后立即单击转发器中的另一个链接,新的弹出窗口将打开但不会加载页面(不转到提供的 URL),直到上一个异步调用完成(我已经验证了这一点通过提琴手)。有趣的是,这只发生在同一域内的链接上。如果我将其中一个 popus 的链接更改为 www.google.com,则窗口将打开并按预期转到正确的 url。但是,对于在我自己的域中包含链接的弹出窗口,在关闭带有未完成请求的弹出窗口后立即打开,它会等到前一个请求完成后再加载 url。

我已经验证了中止回调的正确方法,并且 abort 确实会正确触发。我也知道我只能中止我的客户端调用,而不是服务器端调用,我不在乎。我唯一的要求是浏览器加载下一个链接,而不考虑之前的异步响应。

背景的有用/类似链接:

browser-waits-for-ajax-call-to-complete-even-after-abort-has-been-called-jquery aborting-an-asp-net-web-service-asynchronous-call canceling-ajax-web-service-称呼

有人遇到过这个吗?它让我发疯!任何帮助将不胜感激。

0 投票
4 回答
2268 浏览

wcf - 对 Windows 服务中托管的 WCF 服务的异步调用

我在 Windows 服务中托管了 WCF 服务。我有控制台应用程序,我为其添加了 WCF 服务引用并为其生成了客户端。

我可以对服务进行同步调用,但异步调用似乎不起作用。如果我附加服务器进程,它根本不会影响服务。

这是一个已知问题吗?

0 投票
2 回答
2091 浏览

wcf - 异步结束未在 WCF 中调用

我有以下情况: 我的 WCF 服务允许客户端注册以等待某个事件。等待在服务端是异步的,即注册服务员,当进程完成后,通知服务员。目前,它只是一个ManualResetEvent.

现在我想通过 WCF 公开这个方法。我尝试使用AsyncPattern=true并创建了两种方法,BeginWait它们将事件捆绑到 中IAsyncResult,并EndWait调用AsyncWaitHandle.WaitOne(). 但是,如果我从客户端调用BeginWait,则不会执行服务器端。我正在使用手动实现的包装器(我的代理类是从 派生的),它基本上调用,并且确实调用了这个函数;但在服务器端,电话永远不会到达。EndWaitEndWaitChannelBase<IWaitService>, IWaitServiceChannel.EndWait()

我在这里做错了什么?后续问题:如果异步调用正常工作,是否有一种简单的方法可以在客户端实现同步?

0 投票
3 回答
2231 浏览

.net - 异步 Web 服务设计模式

在编写连接到 WCF Web 服务的 Silverlight 应用程序时,我们在使用 Web 服务时看到的唯一选项是对 WS 接口进行异步调用。

IE

虽然我理解编写 webapps(安全网)时异步调用的原因,但如果编写的方法的每个步骤都依赖于 Web 服务调用的结果,将使用哪种类型的设计模式?

例如,如果 Web 服务中有一个方法检查访问者的用户凭据,并且根据该用户的组,将执行一些操作。

有没有办法在不使用由先前异步调用完成事件触发的方法的“多米诺”设计的情况下完成此操作?如果有很多客户端/服务交互,它似乎会变得混乱。

谢谢!

0 投票
1 回答
1315 浏览

wcf - 来自 Silverlight 3 的异步 Web 服务调用

在从 silverlight 3 调用 wcf 服务并在单独的线程上更新 ui 的场景中,我有一个关于事件顺序的问题。基本上,我想知道我所做的是否正确......示例如下。这是我在这里的第一篇文章,所以请耐心等待,因为我不确定如何发布实际代码。样品如下:

所以我的问题基本上是,在我的 UI 线程内部,当我加载响应时,如果抛出异常,“finally”块会捕捉到它吗?如果不是,我应该在加载响应的 lambda 中再放一个 try/catch 吗?

另外,由于我在 ui 线程上执行加载,最终是否有可能在 UI 线程完成更新之前执行?因此可以在加载完成之前调用 Servicehelper.CloseService() 吗?

我问是因为我在使用这种方法时遇到了间歇性问题。

0 投票
1 回答
833 浏览

asp.net - 返回 null 的异步 Web 服务调用(从 ASP.NET 异步页面调用)

我正在使用已在 WCF 中实现的第 3 方 Web 服务。

我的消费者代码驻留在 ASP.NET 异步页面上。

问题是,有时 BeginCallWebService() 方法返回 null。它不应该总是返回一个 IAsyncResult 对象吗?

我应该要求 Web 服务开发人员修改他们的代码,还是 null 是一个合法的响应?

0 投票
1 回答
5191 浏览

.net - [OperationContract(IsOneWay = true)] 和检查生成的异步操作复选框有什么区别?

用标记 WCF 方法有什么区别

[OperationContract(IsOneWay = true)]

属性并在添加服务引用时检查生成异步操作复选框?

从我读过的内容来看,调用的异步性质似乎应该只在客户端定义。如果是这样,那有什么意义[OperationContract(IsOneWay = true)]呢?

现在,我只是在 WCF 方法中运行了以下方法。

我在客户的代码中创建了一个服务引用,我只需调用:

indexerClient我的 WCF 服务的实例在哪里。

这也应该有效吗?似乎没有,就好像它在返回之前等待线程完成一样。

0 投票
1 回答
374 浏览

c# - WCF 3.5 REST 端点是否异步调用关联方法?

当 WCF 3.5 REST 端点(通过WebServiceHost)处理 URI 请求时,它是否异步调用关联的过程?

谢谢,

斯科特