问题标签 [sendasync]

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

c# - C#:远程主机上的套接字 ReceiveAsync 和 SendAsync 出现问题

首先我想说这个带有服务器/客户端的代码在我的 PC 上运行良好(客户端和服务器都在同一台 PC 上运行)

当我在专用服务器上托管服务器时,问题就开始了。我第二次尝试与客户端发送或接收时,客户端将花费大量时间来完成操作(谈论接收 1 个字节的数据需要超过 1 小时!)

** 我可以通过在每个发送/接收命令后简单地断开和连接套接字来避免这个问题

我不明白为什么要在同一个连接会话中执行超过 1 次发送/接收操作需要这么多时间。


这是一个例子:

连接服务器:

现在客户端已连接到服务器,我可以正常开始发送/接收。

我第一次尝试发送或接收它的工作完美且快速(无论缓冲区长度如何)。

现在,如果我想与服务器开始接收会话

第二个接收操作永远不会到达 socket_receiveCompleted_Completed 事件。


但是..如果我在第一次发送/接收会话后关闭与服务器的连接,然后打开与服务器的新连接,然后进行下一次发送/接收会话,那么一切都会完美运行。(并多次复制此方法以进行多次发送/接收)

同样,我的工作站中不会出现问题(如果我在同一台 PC 上运行服务器和客户端)。只有当我将服务器托管在远程主机上时才会发生这种情况。

这是我的套接字类的一部分:

赞赏。谢谢。

0 投票
0 回答
104 浏览

c# - SmtpClient.SendAsync 方法(MailMessage,Object)不能以异步方式运行

在 MSDN 中解释说此方法不会阻塞调用线程,并允许调用者将对象传递给操作完成时调用的方法。

但是当我在我的 asp.net 项目中使用它时,它仍然阻塞了调用者线程。

我已经在 stackoverflow 和 supportmicrosoft 上看到过这个问题,但它似乎仍然悬而未决。

代码: ...

Response.Write("test") 只有在 client_SendCompleted 完成后才能执行。

0 投票
0 回答
190 浏览

c# - C# - 关于 Windows.Forms Timer 和 SMTPClient.SendAsync

我有一个Windows.Form Timer每 x 分钟触发一次事件(例如 5 分钟)。基本上,当该事件被触发时,它会发送一封电子邮件。我使用了,SMTPClient.SendAsync();但它没有成功发送电子邮件。我尝试调试它,但没有任何错误。当我在调试模式下跨过该特定行时,代码执行良好。

然而,SMTPClient.Send(mail);它正在工作。但我不希望我的程序这样做,因为它会停止线程,直到它完成执行。

这在我使用 System.Timers.Timer 时没有发生。在SendAsync我切换到Windows.Form Timer. 我能够收到电子邮件,所以它不能是端口、服务器、凭据等邮件设置。

与由?SendAsync触发的事件不兼容Windows.Form Timer?因为当我使用它时它正在工作System.Timers.Timer

0 投票
0 回答
1048 浏览

c# - 如何修复这个 C# SendAsync 方法?

我是一名新的 ASP.NET 开发人员,我正在开发一个管理员/系统可以向用户发送电子邮件的项目。由于我不希望管理员等到系统发送电子邮件,我打算使用 SendAsync 方法。

但是,我遇到了一个非常奇怪的错误,即

“SmtpExecption 被捕获:发送邮件失败。”

我无法解决它。

供您参考,我使用的是 .NET Framework 4。

这是我的自定义 Mailer 类中的 SendAsync 方法的代码:

那么我该如何解决呢?

更新#1:

顺便说一句,我将所有 SMTP 配置保存在 Web.Config 文件中。以下是设置:

更新#2: 在尝试了不同的建议后,我将 Async=True 添加到了 Page Directive 中,我收到了一条新的错误消息:

异步模块或处理程序已完成,而异步操作仍处于挂起状态。

我调试了代码,这次调试器进入 MailDeliveryMethod 并从以下块中抛出此错误:

关于我为什么会收到这种错误的任何想法?

0 投票
1 回答
546 浏览

c# - 如何理解 C# SendAsync 函数?

当我用 C# 编程以批量发送邮件时,我的代码是这样的:

这是个问题!当第一封邮件发送失败时(例如邮件地址是null),下一封邮件就不能发送了!

因为我有很多邮件等待发送,如果这种情况,如何解决?例如失败的邮件可能仍然在这个表上,管理员手动处理它。

但这种情况可能在Send功能上,为什么会发生这种情况?

0 投票
1 回答
8546 浏览

c# - SendAsync SMTP 邮件错误

应用程序要求使用 SendAsync 而不仅仅是 Send。所以我做了一个类 CEmailServer 并设置了一切。到目前为止,Send 工作正常,但是当将其更改为与 SendAsync 一起使用时,它就不行了。我创建了一个在发送邮件并且 userToken 就位但它一直失败时调用的方法。我找不到我的错误。这是我的代码:

非常感谢你!

0 投票
1 回答
706 浏览

c# - 发送邮件发送异步

我对 C# 和 sendmail 异步有一个奇怪的问题。当我使用正常的发送方法时,一切正常,我的电子邮件正在发送到正确的 SMTP 服务器。但是当我使用 SendAsync-Method 时它不起作用。

SendAsync-Method 始终在 e.Cancelled 中运行,没有任何异常或错误。我真的不知道为什么。

有没有人提示,线索?谢谢!

更新

这是完整的代码:

0 投票
1 回答
2136 浏览

c# - Ping.SendAsync 未命中回调 PingCompletedEventHandler

传递无效 IP - 0.0.0.51 时,我在使用 SendAsync 方法时遇到问题

问题是,回调方法(pingSender_PingCompleted)甚至没有被调用。我没有看到任何错误。

IPAddress.TypeParse 将此 IP 视为“有效”IP。

这是我的代码;请让我知道我在这里没有看到什么。

请注意,我不能:

  1. 对来自 ipAddress 的内容进行任何形式的控制

  2. 使用正则表达式使我的代码复杂化

0 投票
2 回答
1881 浏览

c# - base.SendAsync - 对称执行是如何完成的?

在 asp.net 中 - 使用消息处理程序- 我可以通过添加消息处理程序来自定义请求/响应。

因此,一个请求进入,经过多个消息处理程序,然后响应通过相同的处理程序返回(方向相反)。

在此处输入图像描述

因此,例如:如果我附加 2 个消息处理程序:( 是的,我知道,async/await 是首选,但那是来自一本书)

我们不要忘记在 global.asax 中注册它们:

结果是:

在此处输入图像描述

正如你所看到的,就像我说的和这篇文章说的:执行是对称的。

伟大的。

但后来我心想——他们是如何做到对称处决的?

所以我成功地使用延续创建了我自己的对称执行演示:

结果确实是对称的:

但是在我的代码中Method1 Method2就是它起作用的原因!.

但是在上面的第一个代码中 - 他们不互相调用!就像某些东西只从每个方法调用第一部分(在 之前ContinueWith),然后从每个方法运行第二部分(在 之后ContinueWith)。

就像是 :

在此处输入图像描述

因此,我查看了以下参考源base.Sendasync :但找不到如何base.Sendasync进行这种对称执行

问题

如何在 base.Sendasync没有一种方法调用另一种方法的情况下进行对称执行?

0 投票
1 回答
1002 浏览

vb.net - 使用 SendAsync 时如何在 VB 中处理 System.Net.Mail.MailMessage

我还没有在这里或 MSDN 上找到一个决定性的答案。使用以下代码时,如果我在发送异步邮件后尝试处理消息,则会收到System.ObjectDisposedException:无法访问已处理的对象。这是微软示例建议处理的时候。我无法在回调中处理消息,因为它超出了范围。我曾尝试使用模块级邮件消息,但得到相同的结果。如果我不处理该消息,一切正常,但这不是一个好习惯。请建议处理邮件的最佳位置。