问题标签 [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.
c# - C#:远程主机上的套接字 ReceiveAsync 和 SendAsync 出现问题
首先我想说这个带有服务器/客户端的代码在我的 PC 上运行良好(客户端和服务器都在同一台 PC 上运行)
当我在专用服务器上托管服务器时,问题就开始了。我第二次尝试与客户端发送或接收时,客户端将花费大量时间来完成操作(谈论接收 1 个字节的数据需要超过 1 小时!)
** 我可以通过在每个发送/接收命令后简单地断开和连接套接字来避免这个问题
我不明白为什么要在同一个连接会话中执行超过 1 次发送/接收操作需要这么多时间。
这是一个例子:
连接服务器:
现在客户端已连接到服务器,我可以正常开始发送/接收。
我第一次尝试发送或接收它的工作完美且快速(无论缓冲区长度如何)。
现在,如果我想与服务器开始接收会话
第二个接收操作永远不会到达 socket_receiveCompleted_Completed 事件。
但是..如果我在第一次发送/接收会话后关闭与服务器的连接,然后打开与服务器的新连接,然后进行下一次发送/接收会话,那么一切都会完美运行。(并多次复制此方法以进行多次发送/接收)
同样,我的工作站中不会出现问题(如果我在同一台 PC 上运行服务器和客户端)。只有当我将服务器托管在远程主机上时才会发生这种情况。
这是我的套接字类的一部分:
赞赏。谢谢。
c# - SmtpClient.SendAsync 方法(MailMessage,Object)不能以异步方式运行
在 MSDN 中解释说此方法不会阻塞调用线程,并允许调用者将对象传递给操作完成时调用的方法。
但是当我在我的 asp.net 项目中使用它时,它仍然阻塞了调用者线程。
我已经在 stackoverflow 和 supportmicrosoft 上看到过这个问题,但它似乎仍然悬而未决。
代码: ...
Response.Write("test") 只有在 client_SendCompleted 完成后才能执行。
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
c# - 如何修复这个 C# SendAsync 方法?
我是一名新的 ASP.NET 开发人员,我正在开发一个管理员/系统可以向用户发送电子邮件的项目。由于我不希望管理员等到系统发送电子邮件,我打算使用 SendAsync 方法。
但是,我遇到了一个非常奇怪的错误,即
“SmtpExecption 被捕获:发送邮件失败。”
我无法解决它。
供您参考,我使用的是 .NET Framework 4。
这是我的自定义 Mailer 类中的 SendAsync 方法的代码:
那么我该如何解决呢?
更新#1:
顺便说一句,我将所有 SMTP 配置保存在 Web.Config 文件中。以下是设置:
更新#2: 在尝试了不同的建议后,我将 Async=True 添加到了 Page Directive 中,我收到了一条新的错误消息:
异步模块或处理程序已完成,而异步操作仍处于挂起状态。
我调试了代码,这次调试器进入 MailDeliveryMethod 并从以下块中抛出此错误:
关于我为什么会收到这种错误的任何想法?
c# - 如何理解 C# SendAsync 函数?
当我用 C# 编程以批量发送邮件时,我的代码是这样的:
这是个问题!当第一封邮件发送失败时(例如邮件地址是null
),下一封邮件就不能发送了!
因为我有很多邮件等待发送,如果这种情况,如何解决?例如失败的邮件可能仍然在这个表上,管理员手动处理它。
但这种情况可能在Send
功能上,为什么会发生这种情况?
c# - SendAsync SMTP 邮件错误
应用程序要求使用 SendAsync 而不仅仅是 Send。所以我做了一个类 CEmailServer 并设置了一切。到目前为止,Send 工作正常,但是当将其更改为与 SendAsync 一起使用时,它就不行了。我创建了一个在发送邮件并且 userToken 就位但它一直失败时调用的方法。我找不到我的错误。这是我的代码:
非常感谢你!
c# - 发送邮件发送异步
我对 C# 和 sendmail 异步有一个奇怪的问题。当我使用正常的发送方法时,一切正常,我的电子邮件正在发送到正确的 SMTP 服务器。但是当我使用 SendAsync-Method 时它不起作用。
SendAsync-Method 始终在 e.Cancelled 中运行,没有任何异常或错误。我真的不知道为什么。
有没有人提示,线索?谢谢!
更新
这是完整的代码:
c# - Ping.SendAsync 未命中回调 PingCompletedEventHandler
传递无效 IP - 0.0.0.51 时,我在使用 SendAsync 方法时遇到问题
问题是,回调方法(pingSender_PingCompleted)甚至没有被调用。我没有看到任何错误。
IPAddress.TypeParse 将此 IP 视为“有效”IP。
这是我的代码;请让我知道我在这里没有看到什么。
请注意,我不能:
对来自 ipAddress 的内容进行任何形式的控制
使用正则表达式使我的代码复杂化
c# - base.SendAsync - 对称执行是如何完成的?
在 asp.net 中 - 使用消息处理程序- 我可以通过添加消息处理程序来自定义请求/响应。
因此,一个请求进入,经过多个消息处理程序,然后响应通过相同的处理程序返回(方向相反)。
因此,例如:如果我附加 2 个消息处理程序:( 是的,我知道,async/await 是首选,但那是来自一本书)
我们不要忘记在 global.asax 中注册它们:
结果是:
正如你所看到的,就像我说的和这篇文章说的:执行是对称的。
伟大的。
但后来我心想——他们是如何做到对称处决的?
所以我成功地使用延续创建了我自己的对称执行演示:
结果确实是对称的:
但是在我的代码中Method1
, Method2
这就是它起作用的原因!.
但是在上面的第一个代码中 - 他们不互相调用!就像某些东西只从每个方法调用第一部分(在 之前ContinueWith
),然后从每个方法运行第二部分(在 之后ContinueWith
)。
就像是 :
因此,我查看了以下参考源base.Sendasync
:但找不到如何base.Sendasync
进行这种对称执行
问题
如何在 base.Sendasync
没有一种方法调用另一种方法的情况下进行对称执行?
vb.net - 使用 SendAsync 时如何在 VB 中处理 System.Net.Mail.MailMessage
我还没有在这里或 MSDN 上找到一个决定性的答案。使用以下代码时,如果我在发送异步邮件后尝试处理消息,则会收到System.ObjectDisposedException:无法访问已处理的对象。这是微软示例建议处理的时候。我无法在回调中处理消息,因为它超出了范围。我曾尝试使用模块级邮件消息,但得到相同的结果。如果我不处理该消息,一切正常,但这不是一个好习惯。请建议处理邮件的最佳位置。