大家好,场景是这样的,winform程序启动后第一次调用webservice很慢>20s,接下来调用webservice就很快了<1s,将winform程序关闭后再次打开仍然是此现象从webservice端记载的日志看,从接收到调用请求到返回结果是非常快的,在几十毫秒的级别;根据分析结果,应该和http://www.cppblog.com/eday/articles/36045.html该文章所述比较类似,可惜网上基本上都是转载,根据其方法操作后,现象依旧,不知道有没有高人亲手搞过?现在的程序采用了warmup的方式,程序加载时自动先连接一下webservice,但是用户如果一进程序就点击调用webservice,就得耐心等待几十秒,这样依旧没有解决问题。
求高手指教。
求高手指教。
解决方案 »
- 急!!!!swftool能将jpg、png、gif等格式的图片转换为swf吗
- Winform中的comboBox怎样设置第一行为“请选择”,下面绑定数据库内容
- 目录下按文件名排序方法
- 能不能举几个泛型最简单的例子?
- 关于DataView的问题
- 关于透明窗体
- c#直方图均衡和规定
- (10分) 用System.Data.Oledb 没问题,但用System.Data.OracleClinet 报错,请高手指点
- Software Engineer: Another way to go to USA(job)
- 一个字符数组的问题!!!
- 如何把保存在文本框中的含有其他调用字符的sql语句调用后,达到成功执行的效果。
- C# 怎么改变comboBox度高度
如果调用一样,但是web site块,而winform慢的话,只能说是网络问题。
是否参数值或者返回值太大。
是否网络速度太慢。
http://blog.csdn.net/marising/archive/2007/02/09/1506224.aspx
我参考的文章和你贴的文章是一样的,网络是没有问题的(局域网,同一个交换机上),Website、Winform均在同一台机器,webservice在另一台机器。ngen.exe也是产生一个AssemblyName+"XmlSerializer.dll"的序列化文件吧,没有效果。关于application访问webservice第一次慢的问题,试一下就可以看出来了,肯定是winform内部程序的问题,真是鸡肋啊。
不知道怎么试。给个demo程序!对于winform程序,第一次访问web service就要等待几十秒本地编译时间,这看起来很夸张。等上3秒钟有可能。还是写个demo看看你是怎么试出来的。如果不是,那只能考虑其它问题。
这个问题的确存在,而且我认为不是编译或者消耗 CPU 的操作。只能说微软太挫了。
st.Start();
var result = svr.getGeoIPContext();
st.Stop();
MessageBox.Show(string.Format("用时{0}秒", st.Elapsed.TotalSeconds));
在我的机器上显示的时间只有1秒钟。
using System.Diagnostics;
using System.Windows.Forms;
using WindowsFormsApplication3.cn.com.webxml.www;namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} static IpAddressSearchWebService svr = new IpAddressSearchWebService(); private void button1_Click(object sender, EventArgs e)
{
var st = new Stopwatch();
st.Start();
var result = svr.getGeoIPContext();
st.Stop();
MessageBox.Show(string.Format("用时{0}秒", st.Elapsed.TotalSeconds));
}
}
}
lz可以访问同样的互联网上的服务,把网络和人家的服务器计算的时间都算上,试试重现这个现象:点击这个按钮时需要花费几十秒等待时间。
非常感谢您的回复,我在内容中忽略了一个细节:WebService 存在自定义实体类的返回。因而文章http://www.cppblog.com/eday/articles/36045.html描述的与我的问题可能比较接近,可惜我没有尝试成功。