Mat*_*t G 11 c# linqpad system.reactive
我从此站点http://msdn.microsoft.com/en-us/data/gg577610下载了Stable版本的Reactive Extensions v1.0 SP1 ,我在.Net Framework 3.5环境中使用它(Visual Studio 2008)
我尝试在项目中使用Reactive Extensions,并注意到启动速度非常慢.去LinqPad,我输入了以下"C#Expression":
(new int[0]).ToObservable()
Run Code Online (Sandbox Code Playgroud)
我还引用了System.Reactive.dll并导入了System.Reactive.Linq命名空间.当我运行它时,编译和运行需要12秒.
我打开了Process Monitor并监控了LinqPad.我发现它正在向124.155.222.226或124.155.22.59发送HTTP请求.(当你打开它时,FYI LinqPad本身也会打电话给157.55.161.150).使用WireShark,我注意到它正在发送HTTP GET请求
http://crl.microsoft.com/pki/crl/products/MicCodSigPCA_08-31-2010.crl
Run Code Online (Sandbox Code Playgroud)
当代码使用Reactive.Extensions编译时,有谁知道为什么它会像这样打电话回家?此外,还有什么方法可以关闭它,因为在开发应用程序(并在生产中运行)时,给家里电话延迟12秒特别不方便.
注意:当您编译代码时(或JIT在调试时编译它),它会像这样打电话回家.实际上并不是这样做的运行时行为.
听起来Rx程序集是Authenticode签名的.IMO,对于为Framework 3.5或更早版本构建的Authenticode-sign .NET程序集是错误的 - 因为CLR在读取程序集之前检查证书撤销列表,最多将事情延迟几秒钟(或者如果您的Internet连接最差则延迟30秒)超时).
CLR 4中修复了此错误:仅在需要时验证Authenticode签名,而不是每次加载程序集时都验证.
(正是由于这个原因,LINQPad可执行文件的Framework 3.5版本不是Authenticode签名的.)
也许您可以要求Rx团队考虑从Reactive程序集的3.5版本中删除Authenticode签名(假设这确实是问题).
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |