2009-11-26 24 views
3

從javascript調用WebService/C#時出現奇怪的錯誤。服務器方法'methodname'失敗

服務器方法'GetGoogleToken'失敗。 沒有詳細信息,沒有堆棧跟蹤。 在服務器上,我設置了斷點 - 一切正常,並且我正在返回字符串(可能更簡單嗎?)

此外,當我使用瀏覽器測試環境調用它時,方法正常工作。

這裏是方法:

[WebMethod] 
public string GetGoogleToken(string login, string password) 
{ 
    try 
    { 
     string token = string.Empty; 
     if (!String.IsNullOrEmpty(login) && !String.IsNullOrEmpty(password)) 
     { 
      ContactsService service = new ContactsService("..."); 
      service.setUserCredentials(login, password); 
      token = service.QueryAuthenticationToken(); 
     } 

     return token; 
    } 
    catch (Exception ex) 
    { 
     // no errors happening on server side 
     throw new ApplicationException("Error in GetGoogleToken", ex); 
    } 
} 

我的類屬性:

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ToolboxItem(false)] 
[System.Web.Script.Services.ScriptService] 

我的javascript:

Namespace.WebServices.ContactsImport.GetGoogleToken(login, password, ImportGoogle.authenticated, OnAjaxRequest_Error); 

我也注意到,這個錯誤發生之前服務器返回的結果。 (例如我有斷點)

回答

3

問題的原因是非常有趣的 - html集成商把runat =「server」放在按鈕上,這是產生這個Javascript調用。 因此,微軟的JavaScript正在進行頁面重新加載,並且不期待任何來自webservices的結果。

+1

謝謝。我有類似的問題。我有一個類型提交的輸入,而不是按鈕,在Chrome上,它發射了一個回傳。 – bnieland 2011-02-22 15:15:22

相關問題