gpt4 book ai didi

ASP.NET 在 Web 服务中调用 Web 方法 - 内部服务器错误

转载 作者:行者123 更新时间:2023-12-01 07:27:45 24 4
gpt4 key购买 nike

我有一个名为 AEWService.asmx 的 Web 服务,其代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace editor
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class AEWService : System.Web.Services.WebService
{
[WebMethod]
public static Dictionary<string, string> TestFunc(string elementToBeModified, string selectedValue)
{
Dictionary<string, string> newValues = new Dictionary<string, string>();
newValues.Add("k1", "val1");
newValues.Add("k2", "val2");
return newValues;
}
}
}

当我使用 ajax 调用 webmethod 时,收到 500 错误 - 未知的 web 方法 TestFunc。 ajax 调用如下所示:

var dataString = JSON.stringify({ 
"elementToBeModified": "someElement",
"selectedValue": "someValue"
});
$.ajax({
url: 'AEWService.asmx/TestFunc',
type: "POST",
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
// do somethig...
}
});

我还在标签下的 web.config 中添加了以下几行(我不确定它们的含义,但我希望它们没问题):

 <remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

当 webmethod 位于 aspx 页面上时,代码可以完美运行。 asmx 有什么问题吗?

谢谢!

最佳答案

您无法从 Web 服务返回字典对象。请参阅这篇文章。 http://forums.asp.net/t/1370858.aspx/1

也不要将 webmethod 标记为静态。检查这里 Why are Static Methods not Usable as Web Service Operations in ASMX Web Services?

关于ASP.NET 在 Web 服务中调用 Web 方法 - 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8489707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com