我有这个工作,现在不是。我们有多个开发人员从事该项目,但代码看起来像我工作时的样子。我在另一篇文章中看到了 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
这是脚本管理器:
<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 为空 StatusCode 为 404 并且 ErrorObject 为空。
404让我觉得它找不到服务。这似乎也是合乎逻辑的,因为当我在服务器端进行调试时,它永远不会到达 Web 服务。
有什么建议或想法吗?