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

时间:2010-05-11 09:44:48

标签: c# asp.net web-services web-applications

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

如果我调用它一次(例如,在Page_Load中)就可以了,但是一旦我进入按钮点击事件,页面似乎正在加载但实际上什么也没做(加载到无穷大)。

当我在Page_Load中禁用了Web服务调用时,单击按钮后的Web服务调用运行良好,如果我在它们之间切换(在按钮单击中禁用了调用并在Page_Load中启用了调用),则启用了一个行。

为什么会这样?我做错了什么? 是否与我发布我的网络应用程序的位置有一些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);
    ...
}

2 个答案:

答案 0 :(得分:0)

你能展示一些代码段吗?您是否使用(!isPostBack)中的Page_Load来调用网络服务?单击按钮时会触发Page_Load。可能存在问题。

答案 1 :(得分:0)

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