2

我正在尝试通过 ajax 调用托管在传统 ASP.Net WebForm 代码隐藏页面中的 WebMethod。下面是 WebMethod 的代码:

[WebMethod]
public static object States()
{
    StateProvince[] states = new StateProvince[] { };
    ApplicationServiceClient proxy = null;

    try
    {
        proxy = new ApplicationServiceClient();
        states = proxy.GetStateProvinces();
    }
    finally
    {
        CloseServiceProxy(proxy);
    }
    return states;
}

WebMethod 在我的独立开发环境中工作得很好,或者如果正常部署到 IIS,但是当我将 aspx 页面部署到 Sitefinity 时,调用它时会出现以下异常:

“/”应用程序中的服务器错误。
未知的网络方法 States.aspx。
参数名称:methodName

我不确定 Sitefinity 是否在劫持 URL 并在后挂起“.aspx”或这里发生了什么。

这是调用 web 方法的 jquery 调用:

$.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "Regions.aspx/States",
        data: "{}",
        success: function(data) {
            // implementation omitted
        },
        error: function(xhr, msg) {
            alert(xhr.responseText);
        }
    });

我可以通过使用 Fiddler 手动发布请求来复制问题。

同样,这在任何地方都可以正常工作,除非部署到 Sitefinity。有人有什么想法吗?

4

2 回答 2

0

使用数据类型:“json”,

于 2009-08-16T09:03:32.887 回答
0

Sitefinity 运行的是哪个版本的 .NET?页面方法是最近添加的。

于 2009-08-03T02:02:49.270 回答