2010-05-11 55 views
0

我構建了一個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); 
    ... 
} 

回答

0

你能表現出一定的代碼段?您是否使用中的(!isPostBack)來調用webservice?單擊按鈕時,Page_Load將會觸發。這可能是一個問題。

+0

我會發布一些代碼作爲另一個「答案」。 – ShayLivyatan 2010-05-11 10:03:49

0

如果您使用的是WCF,請確保關閉客戶端。在我沒有關閉它之前,我有類似的行爲。

+0

我在第一次調用web服務之後嘗試service.Abort()和service.Dispose(),但仍然沒有幫助... – ShayLivyatan 2010-05-11 10:16:13

相關問題