Сбой метода сервера 'xxx' - PullRequest
1 голос
/ 15 апреля 2011

У меня было это работает, а теперь это не так. У нас есть несколько разработчиков, работающих над проектом, но код выглядит так, как будто он у меня работает. В другом посте я заметил небольшое упоминание о том, что перезапись URL-адреса может вызвать проблему, но она никогда не затрагивалась, была ли это проблема или было ли исправление для этого. К сожалению, это веб-сайт (не веб-приложение), но он работает. Другая возможная проблема заключается в том, что мы используем 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 заставляет меня думать, что он не может найти услугу. Это также кажется логичным, поскольку при отладке на стороне сервера он никогда не попадает в веб-службу.

Есть предложения или мысли?

1 Ответ

1 голос
/ 15 апреля 2011

Я бы предложил использовать инструмент под названием " Fiddler ", это прокси-сервер отладки HTTP, который позволит вам видеть HTTP-запросы от клиента / сервера.

Это может помочь вам диагностировать, что происходит с вашими запросами.

...