【问题标题】:The server method 'xxx' failed服务器方法“xxx”失败
【发布时间】:2011-04-15 13:29:48
【问题描述】:

我有这个工作,现在它不是。我们有多个开发人员从事该项目,但代码看起来像我工作时的样子。我在另一篇文章中看到轻微提及 URL 重写可能会导致问题,但如果这是问题或是否有解决方案,它从未涉及。可悲的是,这是一个网站(不是 Web 应用程序),但它正在工作。另一个可能的问题是我们正在使用 Ektron CMS。同样,它正在处理所有这些变量,除了 URL 的别名/重写,所以这可能是问题所在。

javascript端看intellisense中的方法。我什至有一个警报显示我的方法,所以它知道它在那里。但我收到消息:服务器方法“LookupCourseItems”失败。

<script language="javascript" type="text/javascript">
  function CourseLookup(ItemLookup, ResultID) {
    alert('Attempting to look up: ' + ItemLookup);
    var service = new AjaxDataServices.AjaxService();
    service.LookupCourseItems(ItemLookup, onCourseLookupSuccess, onCourseLookupFailure, ResultID);
  } // CourseLookup - Method

  function onCourseLookupSuccess(result, userContext) {
    var o = document.getElementById(userContext);
    if (o != null) {
      alert('Success!');
        o.outerHTML = result;
    } else {
        alert('Unable to find: ' + userContext);
    } // if we were able to find the element to fill
  } // onCourseLookupSuccess - Method

  function onCourseLookupFailure(result) {
    alert(result.get_message());
    alert("StackTrace: " + result.get_stackTrace());
    alert("StatusCode: " + result.get_statusCode());
    alert("ErrorObject: " + result.get_errorObject());
  } // onCourseLookupFailure - Method

这里是 ScriptManager:

<asp:ScriptManager ID="ScriptManager" runat="server">
  <Services>
    <asp:ServiceReference Path="~/AjaxService.svc" />
  </Services>
</asp:ScriptManager>

这里是服务:

[ServiceContract(Namespace = "AjaxDataServices")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class AjaxService {
  [OperationContract]
  public string LookupCourseItems(string LookupPair) {
    CourseRepository Repository = new CourseRepository(ConfigurationManager.ConnectionStrings["CAMS"].ConnectionString, 7);
    string CourseID = "";
    string SemesterName = "";

    if (LookupPair.Contains(":")) {
        string[] Parts = LookupPair.Split(new char[] { ':' },
        StringSplitOptions.RemoveEmptyEntries);
        CourseID = Parts[0];
        SemesterName = Parts[1];
    } else {
      CourseID = LookupPair;
    } // if the Semester was also given

    Course Item = Repository.GetSingleCourseInformation(CourseID, SemesterName);

    if (string.IsNullOrWhiteSpace(SemesterName))
        return Item.ToHTML();
    else
        return Item.Semesters.Where(s => s.Name == SemesterName).SingleOrDefault().ToHTML();
    } // LookupCourseItems - Method

运行时,最初的“尝试查找:1234”有效。 然后 onCourseLookupFailure 方法被调用,并在这篇文章的标题中转述消息。 然后 StackTrace 为空 状态码是 404 并且 ErrorObject 为空。

404 让我觉得它找不到服务。这似乎也是合乎逻辑的,因为当我在服务器端进行调试时,它永远不会到达 Web 服务。

有什么建议或想法吗?

【问题讨论】:

    标签: javascript asp.net ajax ektron


    【解决方案1】:

    我建议使用一个名为“Fiddler”的工具,它是一个 HTTP 调试代理,可以让您查看来自客户端/服务器的 HTTP 请求。

    它可以帮助您诊断您的请求发生了什么。

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多