从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);
我也注意到,在服务器返回结果之前发生了错误。 (例如,我有断点)
答案 0 :(得分:3)
问题的原因非常有趣 - html集成商在按钮上放置了runat =“server”,这就是生成这个Javascript调用。 因此,微软的javascript正在进行页面重新加载,并且没有期待来自webservices的任何结果。