我不想看到一个很好的奖金去浪费,所以我会尝试用我可用的信息来回答我自己的问题。
[延迟]
实际测量(在丝)使用Silverlight是不可能的,因为我们没有获得TCP套接字和不能访问由这种低级别接口的等待时间和速度沙箱。这也杀死了“TCP SlowStart”。也就是说,可以推断WCF延迟和Goodput带宽。
WCF服务
2 using System;
3 using System.Net.NetworkInformation;
4 using System.Text;
5
6 public class Service : IService
7 {
8 public bool PingNetwork()
9 {
10 return true;
11 }
12 }
和客户端:
using System;
using System.Windows;
using System.Windows.Controls;
using PingDemo.PingServiceReference;
namespace PingDemo
{
public partial class MainPage : UserControl
{
private ServiceClient client = new ServiceClient();
private DateTime PingStart = new DateTime();
public MainPage()
{
InitializeComponent();
client.PingNetworkCompleted += new EventHandler(client_PingNetworkCompleted);
}
void client_PingNetworkCompleted(object sender, PingNetworkCompletedEventArgs e)
{
if (e.Error == null && e.Cancelled == false)
{
MessageBox.Show("Ping Status: " + e.Result);
}
}
private void btnPing_Click(object sender, RoutedEventArgs e)
{
if (client == null)
{
client = new ServiceClient();
}
PingStart = DateTime.UtcNow();
client.PingNetworkAsync(txtHostIP.Text.Trim());
TimeSpan Est_RoundTripTime = DateTime - PingStart; //may need to look up exact syntax
}
}
}
[上传下载]
以类似的方式即延迟是通过使用确定的一个WCF服务主机,上传和d通过将已知(不可压缩)的一组数据下载到客户端并返回,可以估计下载速度。
以下博客讨论了通过WCF发送大数据的方法。这可以用来以上述类似的方式计算数据发送/传输的速度。
http://kjellsj.blogspot.com/2007/02/wcf-streaming-upload-files-over-http.html
我的服务器和一个客户端位于Azure中。我想以编程方式从跟踪日志中获取结果,并使用它在运行时调整应用程序行为。我不确定如何在基于此 – LamonteCristo 2010-08-09 21:15:35
的情况下完成此操作。对不起,我对Azure没有任何经验,所以我的回答可能毫无意义。我想你应该用Azure标签来标记这个问题,因为它可能对你的问题的解决方案产生重大影响。 – 2010-08-09 21:42:23
好主意重新:标记;此外,感谢您检查跟踪查看器的提示。我会+1为它的一般乐于助人,它再次回复 – LamonteCristo 2010-08-09 22:13:17