C# 让套接字侦听ASP.Net应用程序中的端口是否正确
我有一个Winform桌面C#客户端 它的唯一用途是向我的web服务器发送JPEG(一次1个) 我最初使用的是[Web服务] 当在[web方法]中收到字节数组时,字节被保存到静态字节数组变量中,以便在网站内的其他地方使用。本质上,每当访问这些字节时,用户都在检索上传的最新jpeg 为了加快字节数组上传过程,我在web服务器上创建了一个永恒的Winform C#应用程序。此时,我收到字节数组,并将它们保存到硬盘上(因此我知道该部分正在工作) 我仍然希望将字节数组作为静态变量保存并访问主网站 我知道我可以将socket应用程序移植到我的asp.net应用程序中 但是,这是可以接受的,还是会进一步导致并发症 如果可以接受,我是否可以在我的global.asax页面或wil的app_启动事件中启动套接字侦听代码,这也会导致问题?不管怎样,我都会试试的C# 让套接字侦听ASP.Net应用程序中的端口是否正确,c#,asp.net,sockets,C#,Asp.net,Sockets,我有一个Winform桌面C#客户端 它的唯一用途是向我的web服务器发送JPEG(一次1个) 我最初使用的是[Web服务] 当在[web方法]中收到字节数组时,字节被保存到静态字节数组变量中,以便在网站内的其他地方使用。本质上,每当访问这些字节时,用户都在检索上传的最新jpeg 为了加快字节数组上传过程,我在web服务器上创建了一个永恒的Winform C#应用程序。此时,我收到字节数组,并将它们保存到硬盘上(因此我知道该部分正在工作) 我仍然希望将字节数组作为静态变量保存并访问主网站 我知道
谢谢您说因为性能原因,您想从“web方法”中切换出来。尝试切换到:
不要打开自己的插座,因为有更简单的解决方案。当应用程序池回收时,打开套接字也会导致问题(在这种情况下,两个工作进程将同时运行很短的一段时间)。您说由于性能原因,您希望切换到“web方法”。尝试切换到:
不要打开自己的插座,因为有更简单的解决方案。当应用程序池回收时,打开套接字也会导致问题(在这种情况下,两个工作进程将同时运行一小段时间)。通过web方法传输文件有什么问题?似乎是个不错的方法。@usr调用带有byte[]参数的web服务需要将数组转换为文本(json/xml)。更好的方法是接受来自客户端的二进制POST请求(如WCF中的流)。您好,谢谢回复。我改变的原因是因为速度。与套接字相比,客户端对[web方法]的连续调用速度较慢。@L.B您好,谢谢您的评论。你的意思是在我的桌面应用程序中创建一个webclient对象,然后像计时器一样放入其中吗?@AndrewSimpson不像上传到网站的文件。只是发布二进制数据。通过web方法传输文件有什么问题?似乎是个不错的方法。@usr调用带有byte[]参数的web服务需要将数组转换为文本(json/xml)。更好的方法是接受来自客户端的二进制POST请求(如WCF中的流)。您好,谢谢回复。我改变的原因是因为速度。与套接字相比,客户端对[web方法]的连续调用速度较慢。@L.B您好,谢谢您的评论。你的意思是在我的桌面应用程序中创建一个webclient对象,然后像计时器一样放入其中吗?@AndrewSimpson不像上传到网站的文件。只是发布二进制数据。谢谢你提到的陷阱。我的主要目标是上传速度和回复到客户端的时间。我会尝试两者,看看什么对我有效,但你会推荐什么样的速度。按照“高效二进制传输”的描述,它似乎是WCF?@AndrewSimpson在这两种情况下,速度都将由memcpy和网络传输控制。他们将进行类似的比较。在你的情况下,使用任何更有意义的东西。我猜HTTP的开销比WCF稍微少一些。谢谢你提到的那个陷阱。我的主要目标是上传速度和回复到客户端的时间。我会尝试两者,看看什么对我有效,但你会推荐什么样的速度。按照“高效二进制传输”的描述,它似乎是WCF?@AndrewSimpson在这两种情况下,速度都将由memcpy和网络传输控制。他们将进行类似的比较。在你的情况下,使用任何更有意义的东西。我猜HTTP的开销比WCF稍微少一些。