【发布时间】:2011-01-14 14:38:11
【问题描述】:
我想创建一个接受自定义对象列表(通过 jQuery/JSON 传入)的 Web 方法。
当我在本地运行网站时,一切似乎都正常。 jQuery 和 ASP.NET,每个人都很高兴。但是当我把它放在我们的一台服务器上时,它就炸了。 jQuery 在 ajax 请求后收到 500 错误,响应为:
System.InvalidOperationException:EditCustomObjects Web 服务方法名称无效。
这是网络服务方法:
[WebMethod]
public void EditCustomObjects(int ID, List<CustomObject> CustomObjectList)
{
// Code here
}
还有我的 jQuery 代码(我认为这并不重要,因为错误似乎发生在 Web 服务级别):
var data = JSON.stringify({
ID: id,
CustomObjectList: customObjectList
});
$.ajax({
type: "POST",
url: "/manageobjects.asmx/EditCustomObjects",
data: data,
contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function(xml, ajaxStatus) {
// stuff here
}
});
customObjectList 的初始化如下:
var customObjectList = [];
然后我像这样(通过循环)向它添加项目:
var itemObject = {
ObjectTitle = objectTitle,
ObjectDescription = objectDescription,
ObjectValue = objectValue
}
customObjectList.push(itemObject);
那么,我在这里做错了吗?有没有更好的方法将数据数组从 jQuery 传递到 ASP.NET Web 服务方法?有没有办法解决“Web Service 方法名无效”。错误?
仅供参考,我在 Windows Server 2003 机器上运行 .NET 2.0,我从这个站点获得了上述代码:http://elegantcode.com/2009/02/21/javascript-arrays-via-jquery-ajax-to-an-aspnet-webmethod/
编辑:有人要求提供有关网络服务的更多信息,我宁愿不提供整个课程,但这里有更多可能会有所帮助:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ManageObjects : Custom.Web.UI.Services.Service
{
}
巴拉
【问题讨论】:
-
你能发布你完整的网络服务课程吗?至少是方法的父作用域?
-
我宁愿不发布整个 Web 服务,但请参阅上面的编辑以获取有关 Web 服务初始化的更多信息。
-
首先检查生产服务器上是否确实存在该方法确实。转到
http://mysite.com/manageobjects.asmx看看它列出了哪些方法。 -
确实存在,我已经查过了。
标签: asp.net jquery web-services asmx invalidoperationexception