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?