WCF,性能如此之差,他还有未来吗? 顺便问个问题。

smvalue 2013-12-05 02:13:22
其实在几年前很喜欢使用 WCF,他方便简单,特别是部署,不用搭建IIS。然而性能问题, 这么多年貌似也没什么改进。同样一段代码,同样传输Stream,WCF与MVC4的性能相差10倍以上。
选择使用WCF,最重要的原因就是部署简单,有人说使用IIS来托管WCF可以提高性能,然而既然选择了搭建IIS,也就自然没有必要使用IIS来托管WCF了,我个人是这么认为的。

以下代码,采用MVC框架,基于Stream实现文件下载,然而与相同原理然下使用WCF实现的性能提高10倍之多:

public class DownLoadController : ApiController
{
[HttpGet]
[HttpPost]
public HttpResponseMessage DownLoadFile()
{
FileInfo fi = new FileInfo(@"c:\soft\神秘小电影\jp.myav.tv-MXGS520.avi");

try
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
Stream stream = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read, FileShare.Read);

response.Content = new StreamContent(stream);
response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.Name = fi.Name;
response.Content.Headers.ContentLength = fi.Length;
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");

return response;
}
catch (Exception err)
{
Console.WriteLine(err.Message);
return null;
}
}



使用迅雷或者其他下载工具时, 会提示该资源无法实现断点续传, 请问需要怎样改进一下呢?谢谢
...全文
1723 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
smvalue 2013-12-06
  • 打赏
  • 举报
回复
自己顶!!!
  • 打赏
  • 举报
回复
http://www.torrentkitty.com/torrent/933531/im520@SIS001@MXGS-481 对wcf不太熟悉,好像是听说,它因为考虑了很多兼容性和普适性,性能不太好,但这些也都是可以配置的. 想要效率高,必然要牺牲抽象程度,更深入底层. 比如你到了 stream  ,如果是到byte级,估计效率还能优化.
smvalue 2013-12-05
  • 打赏
  • 举报
回复
在8楼, 打错了。低调地搜索,高调地讨论技术,谢谢!!
smvalue 2013-12-05
  • 打赏
  • 举报
回复
引用 10 楼 wcscpy174740342 的回复:
jp.myav.tv-MXGS520.avi 种子呢
在6楼, 自己搜,别再纠结这个了, 讨论技术!!!!!
烈火焚身 2013-12-05
  • 打赏
  • 举报
回复
jp.myav.tv-MXGS520.avi 种子呢
F546445693 2013-12-05
  • 打赏
  • 举报
回复
smvalue 2013-12-05
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
顺便问下 这个女主角叫什么?
其实关键字是:MXGS520 很明显了。 各位,我大意了,没改代码就粘上来了,其实这真是个严肃的问题, 是技术问题, 言归正传吧,咱们继续讨论技术!
飞小猪 2013-12-05
  • 打赏
  • 举报
回复
引用 3 楼 diaodiaop 的回复:
楼主好人 求
引用
jp.myav.tv-MXGS520.avi
的地址..
同求
E次奥 2013-12-05
  • 打赏
  • 举报
回复
3楼真相......
Bonjour-你好 2013-12-05
  • 打赏
  • 举报
回复
3楼真相......
by_封爱 版主 2013-12-05
  • 打赏
  • 举报
回复
顺便问下 这个女主角叫什么?
by_封爱 版主 2013-12-05
  • 打赏
  • 举报
回复
楼主好人 求
引用
jp.myav.tv-MXGS520.avi
的地址..
smvalue 2013-12-05
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
从编程语言以及开发框架的发展开看,开发速度以及上手的难易度和运行时的效率基本是成反比的关系。但是这个比值不是固定的,不过基本是一种相互对立的状态。如果选择还是在于项目本身的需求以及背景。
支持, 顺便请教下, 还需要在 Response 的Headers 里面加一些信息, 才可以让下载工具知道这个资源是支持断点续传的呢? 因为返回的是Stream,客户端想从哪里读, 读多少都是可以的。
cheng2005 2013-12-05
  • 打赏
  • 举报
回复
从编程语言以及开发框架的发展开看,开发速度以及上手的难易度和运行时的效率基本是成反比的关系。但是这个比值不是固定的,不过基本是一种相互对立的状态。如果选择还是在于项目本身的需求以及背景。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧