服务器方法'methodname'失败

时间:2009-11-26 19:15:27

标签: javascript asp.net-ajax web-services

从javascript调用WebService / C#时出现奇怪的错误。

服务器方法“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 个答案:

答案 0 :(得分:3)

问题的原因非常有趣 - html集成商在按钮上放置了runat =“server”,这就是生成这个Javascript调用。 因此,微软的javascript正在进行页面重新加载,并且没有期待来自webservices的任何结果。