ASP.NET:为什么我不能在一个页面中调用两次Web服务?

问题描述:

我构建了一个Web应用程序,该应用程序在应用程序的登录页面中调用Web服务两次 - 首先在Page_Load上,第二次在按钮单击后。 调试时,一切顺利,但在发布Web应用程序并尝试之后 - 我无法对Web服务进行两次调用(每次调用都在同一个Web服务中调用不同的函数)。ASP.NET:为什么我不能在一个页面中调用两次Web服务?

如果我调用一次(比如在Page_Load中)它的OK,但是一旦我到达按钮单击事件,页面似乎正在加载,但实际上什么也没做(加载到无穷大)。

当我在Page_Load中禁用网络服务呼叫时,点击按钮后的网络服务呼叫运行良好,如果我在它们之间切换(禁用按钮单击中的呼叫并启用Page_Load中的呼叫)行得通。

这是怎么回事?我做错了什么? 这可能与我发布我的Web应用程序的位置有一些URL重写规则有关吗?


我不使用(的IsPostBack!) - 我曾尝试按钮点击事件后把两个呼叫不过,仍然有同样的问题。

代码的相关部分:

protected void Page_Load(object sender, EventArgs e) 
{ 
    MyService.Functions service = new MyService.Functions(); 
    string str = service.DigestURL(Request.RawUrl.ToString()); 
    ... 
} 


public void submitButton_Click(object sender, ImageClickEventArgs e) 
{ 
    MyService.Functions service = new MyService.Functions(); 
    string str = service.CommitLogIn(usernameText.Text, passwordText.Text); 
    ... 
} 

你能表现出一定的代码段?您是否使用中的(!isPostBack)来调用webservice?单击按钮时,Page_Load将会触发。这可能是一个问题。

+0

我会发布一些代码作为另一个“答案”。 – ShayLivyatan 2010-05-11 10:03:49

如果您使用的是WCF,请确保关闭客户端。在我没有关闭它之前,我有类似的行为。

+0

我在第一次调用web服务之后尝试service.Abort()和service.Dispose(),但仍然没有帮助... – ShayLivyatan 2010-05-11 10:16:13