无效的Web方法名称

本文关键字:方法 Web 无效 | 更新日期: 2023-09-27 18:29:39

我创建了一个web方法,但当我转到网站并键入例如http://mysite.com/services/Amounts/GetAmount时,它会返回一个错误Internal Server Error 500。在调查了事件日志等中的问题后,它说GetAmount无效的方法名称。但我知道妈妈很好

[WebMethod(EnableSession=true)]
public string GetAmount(Amounts amts)
{
    //some logic here to add to the database.
}

当出现这种类型的错误时,我必须调查哪些可能的问题?,我检查了所有的引用,所有内容都被正确命名为"GetAmount"。

无效的Web方法名称

你想在这里做什么?您需要发布更多的代码和web.config。您在这里使用的是.NET的哪个版本?所有这些信息可能会给你更好的答案。

首先,您的URL http://example.org/services/Amounts/GetAmount似乎不正确——除非您使用ASP.NET路由或某些URL重写,否则必须有.asmx

假设您的路由/重写确实工作正常:一般来说,如果它是一个普通的SOAPWeb服务,则启用HTTPget-

<webServices>
    <protocols>
      <add name="HttpGet" />
      <add name="HttpPost" />
    </protocols>
</webServices>

如果您正在尝试创建一个可从脚本调用的服务(ScriptService),那么对于asmx服务,您需要将该方法标记为ScriptService,并且可能需要根据.NET版本调整web.config。此外,您还需要启用HTTP GET-例如,

[ScriptMethod(UseHttpGet = true)]
public string GetAmount(Amounts amts)

您可能还需要调整响应格式,无论您想要JSON还是XML。