2011-04-15 6 views
1

J'ai eu ce travail et maintenant il ne fonctionne pas. Nous avons plusieurs développeurs travaillant sur le projet, mais le code ressemble à quand je l'ai fonctionné. J'ai vu une légère mention dans un autre article que la réécriture d'URL peut causer un problème, mais cela n'a jamais été le cas si c'était le problème ou s'il y avait un correctif pour cela. Malheureusement, il s'agit d'un site Web (pas Web App), mais cela fonctionnait. Un autre problème possible est que nous utilisons Ektron CMS. Encore une fois, il fonctionnait avec toutes ces variables, à l'exception de l'aliasing/réécriture de l'URL, ce qui peut être le problème.La méthode du serveur 'xxx' a échoué

Le côté javascript voit la méthode dans intellisense. J'ai même une alerte me montrant la méthode pour qu'elle sache là. Mais je reçois le message: La méthode du serveur 'LookupCourseItems' a échoué.

<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 

Voici le ScriptManager:

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

Voici le Service:

[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 

Lors de l'exécution, la première "attemping pour rechercher: 1234" fonctionne. Ensuite, la méthode onCourseLookupFailure est appelée et ruteursns le message dans le titre de cet article. Alors le StackTrace est vide Le StatusCode est 404 Et le ErrorObject est null.

Le 404 me fait penser qu'il ne trouve pas le service. Cela semble également logique puisque lorsque je débogue sur le serveur, il ne parvient jamais au Web Service.

Des suggestions ou des idées?

Répondre

1

Je suggère d'utiliser un outil appelé "Fiddler", c'est un proxy de débogage HTTP qui vous permettra de voir les requêtes HTTP du client/serveur.

Il peut vous aider à diagnostiquer ce qui arrive à vos demandes.

Questions connexes