Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让套接字侦听ASP.Net应用程序中的端口是否正确_C#_Asp.net_Sockets - Fatal编程技术网

C# 让套接字侦听ASP.Net应用程序中的端口是否正确

C# 让套接字侦听ASP.Net应用程序中的端口是否正确,c#,asp.net,sockets,C#,Asp.net,Sockets,我有一个Winform桌面C#客户端 它的唯一用途是向我的web服务器发送JPEG(一次1个) 我最初使用的是[Web服务] 当在[web方法]中收到字节数组时,字节被保存到静态字节数组变量中,以便在网站内的其他地方使用。本质上,每当访问这些字节时,用户都在检索上传的最新jpeg 为了加快字节数组上传过程,我在web服务器上创建了一个永恒的Winform C#应用程序。此时,我收到字节数组,并将它们保存到硬盘上(因此我知道该部分正在工作) 我仍然希望将字节数组作为静态变量保存并访问主网站 我知道

我有一个Winform桌面C#客户端

它的唯一用途是向我的web服务器发送JPEG(一次1个)

我最初使用的是[Web服务]

当在[web方法]中收到字节数组时,字节被保存到静态字节数组变量中,以便在网站内的其他地方使用。本质上,每当访问这些字节时,用户都在检索上传的最新jpeg

为了加快字节数组上传过程,我在web服务器上创建了一个永恒的Winform C#应用程序。此时,我收到字节数组,并将它们保存到硬盘上(因此我知道该部分正在工作)

我仍然希望将字节数组作为静态变量保存并访问主网站

我知道我可以将socket应用程序移植到我的asp.net应用程序中

但是,这是可以接受的,还是会进一步导致并发症

如果可以接受,我是否可以在我的global.asax页面或wil的app_启动事件中启动套接字侦听代码,这也会导致问题?不管怎样,我都会试试的


谢谢

您说因为性能原因,您想从“web方法”中切换出来。尝试切换到:

  • 二进制HTTP post请求(简单)
  • 具有支持高效二进制传输的绑定的WCF(由于设置更复杂)

  • 不要打开自己的插座,因为有更简单的解决方案。当应用程序池回收时,打开套接字也会导致问题(在这种情况下,两个工作进程将同时运行很短的一段时间)。

    您说由于性能原因,您希望切换到“web方法”。尝试切换到:

  • 二进制HTTP post请求(简单)
  • 具有支持高效二进制传输的绑定的WCF(由于设置更复杂)

  • 不要打开自己的插座,因为有更简单的解决方案。当应用程序池回收时,打开套接字也会导致问题(在这种情况下,两个工作进程将同时运行一小段时间)。

    通过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稍微少一些。