Сбой метода сервера 'methodname' - PullRequest
3 голосов
/ 26 ноября 2009

У меня странная ошибка при вызове WebService / C # из JavaScript.

Сбой метода сервера «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);

Я также заметил, что ошибка происходит ДО того, как сервер вернул результат. (например, у меня есть точка останова)

1 Ответ

3 голосов
/ 01 декабря 2009

Причина проблемы была очень забавной - html-интегратор поместил runat = "server" на кнопку, которая генерировала этот вызов Javascript. В результате был загружен javascript от Microsoft, и он не ожидал никаких результатов от веб-сервисов.

...