Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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# Amazon SimpleDB第一次请求时的高延迟_C#_.net_Amazon Web Services_Amazon Simpledb - Fatal编程技术网

C# Amazon SimpleDB第一次请求时的高延迟

C# Amazon SimpleDB第一次请求时的高延迟,c#,.net,amazon-web-services,amazon-simpledb,C#,.net,Amazon Web Services,Amazon Simpledb,我在桌面应用程序(C#,.NET 2.0)中使用SimpleDB,但存在高延迟问题。 我第一次向数据库发出请求(查询、插入值-无所谓)时,大约10-20秒后才收到响应。这只是第一次发生,其余的响应都非常快(还没有测量,但肯定不到300毫秒)。 创建DB客户机时不会发生这种情况,只有在执行第一个请求时才会发生。身份验证这么慢是正常的吗?(我假定在第一次请求时已完成身份验证) 提前谢谢 编辑 当我第一次跑步的时候 SelectResponse response = dbService_.Select

我在桌面应用程序(C#,.NET 2.0)中使用SimpleDB,但存在高延迟问题。
我第一次向数据库发出请求(查询、插入值-无所谓)时,大约10-20秒后才收到响应。这只是第一次发生,其余的响应都非常快(还没有测量,但肯定不到300毫秒)。
创建DB客户机时不会发生这种情况,只有在执行第一个请求时才会发生。身份验证这么慢是正常的吗?(我假定在第一次请求时已完成身份验证)

提前谢谢

编辑

当我第一次跑步的时候

SelectResponse response = dbService_.Select(request);
在输出面板中,我得到:

'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded'C:\Windows\assembly\GAC_MSIL\System.Data.SqlXml\2.0.0.0__b77a5c561934e089\System.Data.SqlXml.dll'
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'System.Xml.Xsl.CompiledQuery.1'
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'System.Xml.Xsl.CompiledQuery'
 A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'rg1d4wjc'  

这正常吗?FileNotFoundException看起来很奇怪。

猜测一下,您是在运行时从WSDL动态构建服务客户机的,尽管我不确定它是否需要那么长的时间

相反,您可以通过在Visual Studio中添加web服务引用或使用svcutil.exe(等效的命令行实用程序)提前将其构建到项目中。

.NET进行编译(在第一次运行代码时进行编译),在第一次迭代时总是会有速度损失(虽然10-20秒似乎很长)

我从来没有使用过它们,但是有一些像ngen这样的工具可以让你事先编译代码

在我不能允许第一次迭代速度慢的应用程序中,我通常通过让“虚拟”数据通过我的关键路径运行来初始化应用程序

这个问题可能还有其他原因,但我会对此进行调查


希望这有帮助

听起来好像有什么东西超时了,然后悄悄地切换到成功的第二个通道,然后缓存以供后续调用。第一个怀疑?可能是DNS。我会检查您的工作站的TCP/IP设置,以查看您的主DNS服务器是否已启动,或者将其替换为at 8.8.8.8和8.8.4.4

我的Windows/.NET安装可能有问题。
我从SDK中获取了一个示例,对其进行了编译(甚至使用了NGEN),在第一次请求时获得了大约30秒的延迟。我将同一个可执行文件复制到虚拟机,延迟5秒。仍然相当大,但可以接受。

可能是WebProxy检测(我假设您使用的.NET客户端只是web服务的包装器)


查看是否可以在服务包装所使用的WebClient上禁用/取消WebProxy属性。

验证会在每个请求上进行。没错,它可能基于REST。那么,为什么只有在第一次请求时才会如此缓慢?我真的不明白。@Rangoric:我不知道你的意思。。。涉及数据库的测试之间经过了多长时间?您可以标记所有异常(Ctrl+Alt+E)的中断,以便查看FileNotFound异常的来源。但是,它可能在框架内,因此您可能需要启用单步执行。最后一个是什么,顺便说一句-它是从什么生成的?如果你观察输出窗口,这需要10-15秒吗?@Rup:它似乎在试图找到一个可以加速XML序列化的预编译DLL。例外情况是用于检查此DLL是否可用的机制。如果不是的话,它会创造一个。它搜索“AWSSDK.XmlSerializers.DLL”,但奇怪的是它也没有创建它。我添加了一个对“”的web引用,它仍然是一样的。