asp.net – 从ASP .Net应用程序上传大文件

前端之家收集整理的这篇文章主要介绍了asp.net – 从ASP .Net应用程序上传大文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在建立一个网站,我需要一个页面,用户可以上传大型视频文件,我已经创建了带流媒体的WCF服务,但我从网页的Button_Click事件调用WCF服务.

我已经使用下面提到的文章来创建WCF服务

WCF Streaming

我已经使用了流,因为它应该是高效的,不应该缓存在服务器的内存中.

现在问题

1)我怀疑整个文件是否上传到Web服务器然后它被转移到WCF服务服务器…如果这是真的那么我没有利用流媒体以及iis和web服务器将关闭很快,如果用户上传文件或多个用户正在上传文件

2)是否有其他有效的方法与其他技术进行相同的操作

请帮我 …

编辑:

如果我没有在ASP .Net代码调用WCF服务方法,那么它也会将字节传输到我用HTTPFox检查过的Web服务器

我已经通过上传控件检查了上面的内容,并在UI上放了一个按钮,其click事件绑定到后面的代码中的一个方法.

所以,我仍然对数据的传输方式感到困惑

>客户端计算机 – Web服务器(ASP .Net应用程序) – 服务服务器(WCF服务)
>客户端计算机 – 服务服务器(WCF服务)

注意:如果我在button_click上放置一个调试点并上传10 kb文件,它会在不到1秒的时间内完成.但如果我上传50 MB的文件,那么它需要时间.

我在该button_click事件中放置了调用WCF服务的代码

解决方法

1) I am having doubts that the entire
file is uploaded to the web server and
then it is transferred to WCF Service
server…if this is true then i am not
getting advantage of streaming as well
as iis and web server will be down
very soon if user uploads large file
or multiple user are uploading files
con currently

不,你这里的东西很混乱.当您使用WCF流式传输上传大型文件时,该文件将以块的形式发送 – 大小为几Kbyte的块. WCF服务器 – 在IIS中运行或在NT服务或控制台应用程序中自托管 – 同时接收这些块并在它们到达时将它们写入磁盘.

您不“将整个文件上传到Web服务器”,然后将其“传输”到WCF服务–WCF服务本身正在接收和处理文件 – 并且只有一次.

如果您自己托管WCF服务 – 在控制台应用程序,Winforms应用程序或Windows NT服务中 – 甚至没有任何IIS或Web服务器参与AT ALL. WCF自己处理它.

使用WCF流可能是最有效的内存之一,也是将大文件传输到服务器的最简单方法之一.

查看有关该主题的更多示例和博客文章

> MSDN WCF Streaming Sample
> Data Transfer Using Self Hosted WCF Service
> Sending Attachments with WCF
> Progress Indication while Uploading/Downloading Files using WCF

猜你在找的asp.Net相关文章