问题标签 [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.
.net - 对内容块使用压缩时,发布内容流获得缓冲
首先是什么有效:(我的问题的描述进一步向下)
客户端应用程序向服务器 WebAPI 发送长数据流。请求被分块(request.Headers.TransferEncodingChunked = True
),数据“即时”写入流。
数据由序列化对象组成,每个对象代表自定义类Chunk
。
一切正常,服务器可以在客户端完成写入之前开始读取流(控制器禁用服务器输入缓冲)。
开始请求:
HttpContent 类:
该方法WriteToStream()
调用 Head-chunks WriteToStream()
,它为其子块调用相同的方法:
到目前为止,一切都很好。
当我开始使用像 GZipStream 这样的压缩来压缩我的 Chunk 时,问题就来了:请求在客户端被缓冲,所以它接缝。
这是-class的WriteToStream()
方法:Chunk
在写入所有数据之前,它不会发送请求。请求是否缓冲流?GZipStream 对某种底层上下文有影响吗?我无法弄清楚问题是什么......
c# - C# UWP Socket:使用 ReceiveAsync / SendAsync 并在不关闭套接字的情况下处理超时
我正在 UWP 平台上编写一个将在移动 UWP 应用程序中使用的类库。
该库需要通过基于 TCP 的专有协议与外部设备通信。该协议要求接收或发送操作等待确切的时间。
正如 TPL 模式所暗示的那样,我实际上已经使用 ReceiveAsync 和 SendAsync 实现了通信层,“等待”它们。
在大量阅读该论点之后,我发现无法在本地设置读/写操作的超时。可以使用一些技巧来实现超时过程(例如:.WaitAny 或可超时令牌),但我所有的阅读都让我意识到了这个事实:
只有关闭套接字才能中断 ReceiveAsync 或 SendAsync 任务
我的问题是:这是真的吗?只能关闭/处理套接字才能阻止超时的接收/发送?
如果这是真的,由于我正在实施的协议不允许我打开/关闭套接字数百次,我需要恢复到实际处理正常超时的命令的同步接收/发送版本。
我已经阅读了很多关于论点的内容,并且我很确定我所写的内容,但老实说,我希望有一种方法可以使用 TPL 模式来处理超时,而无需关闭套接字......
谢谢。
asp.net - ASP.Net - SMTP SendMailAsync 不工作
我有以下代码来发送电子邮件,但我收到以下错误:
这是控制器中的代码:
这是 identityconfig 中的代码:
是什么导致了这个错误?注意应用程序正在防火墙之间运行?
asp.net-mvc - 在 SendAsync 方法中从 Web.Config 获取邮件设置?
我正在研究忘记密码功能。在我的web.config
文件中,我完成了邮件设置:
在我的SendAsync
方法中,我试图从以下位置读取设置web.config
:
我不知道这是什么:AppSettings["SupportEmailAddr"]
我从这里拿了这个。
它给了我以下例外:
值不能为空。参数名称:从
asp.net-mvc - 有什么方法可以将 SendEmailAsync 设置为 isHtml=true?
我正在研究 Asp.Net MVC 中的忘记密码功能。
我能够通过方法成功将忘记密码的链接发送到电子邮件SendEmailAsync
,但电子邮件是 isHtml = false。
我怎样才能使它成真?
c# - C# 需要帮助使用 SendAsync 返回最低 Ping
我有以下代码正在运行并 ping 所有 Runescape 游戏服务器,并在控制台中返回 IP 地址列表和相应的“往返”时间。
编辑“忽略一些旧评论”
我遇到以下问题:
A) 如何返回所有服务器中最低的 ping 并将其写入控制台?
B)如何跨方法返回当前“server.ToString()”的原始主机名或“编号”?
c# - SmtpClient SendAsync 从不调用 SendCompleted 回调
我正在开发一个 MVC C# 网站 .NET 4.0,并且在一个控制器中我需要发送大量邮件。我从一个使用 SendAsynch 传递回调的独立程序中复制了自己的代码。在 stanalone 应用程序中一切正常。
当然,在控制器中相同的代码不起作用:回调永远不会被调用。
有人可以告诉我为什么相同的代码可以独立运行而不是在控制器中运行?
这是主要代码:
这是 SendCompleted 回调:
c# - 为什么即使我的 Server-Socket 已经收到所有字节,SendAsync 也不会在我的 SocketAsyncEventArgs 上引发 Completed 事件?
所以我有一个非常简单的设置:一个等待客户端连接的服务器和一个连接到服务器并发送消息的客户端。服务器随后应再次发回相同的消息。但是当我尝试使用client.SendAsync(sendArgs)发送消息时,它实际上并没有在 sendArgs 对象上调用 Completed 事件,即使我可以看到我的 Server-Socket 已经接收到所有字节。那么为什么我的Client-Socket中的sendArgs.Completed没有被提升,而是在我的Server-Socket类中的receiveArgs.Completed呢?
使用的命名空间:System、System.Net、System.Net、System.Text
到目前为止,这是我的代码:
客户
服务器
c# - 为什么我不能使用 HttpClient 进行来自 ASP.Net 的同步调用?
我正在使用客户端库来访问第 3 方 API。该库由 NSwagStudio 从 Swagger 文档生成。
我正在开发的应用程序在其所有调用中都是完全同步的,并且将其更新为异步超出了我正在开发的范围。
当我从单元测试中测试客户端库时,它工作正常。当我尝试从 ASP.Net 应用程序中调用它时,我收到以下错误:
CancellationTokenSource 已被释放。
我已经将客户端库提炼为演示问题的要点,我选择了一个选项来提供同步方法和异步:
这是调用它的代码:
调用它的代码只是一个带有按钮的 asp.net 页面,并且按钮事件运行与通过的单元测试相同的代码。
当我在调试器中比较运行时:从单元测试中,response_.Content 对象没有取消令牌,但是当从 asp.net 运行时它有。事实上,它们几乎看起来是不同的对象,尽管 GetType() 将它们都报告为 System.Net.Http.StreamContent。从反编译类,这没有 _cancellationtoken 属性,那么调试器从哪里得到它?
我猜对我的asp.net web 应用程序的http 请求有它自己的令牌和源,它以某种方式被HttpClient 使用。但是,客户端正在等待所有异步调用以同步获取结果,所以我不明白如何处理底层 CTS,因为我们还没有从客户端库的调用中返回。
任何人都可以理解发生了什么并且有解决方案吗?