我创建了一个网络方法但是当我访问该网站并输入例如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”。
答案 0 :(得分:0)
你在这做什么?您需要发布更多代码和web.config。您在这里使用的是哪个版本的.NET?所有这些信息都可以为您提供更好的答案。
首先,您的网址http://mysite.com/services/Amounts/GetAmount
似乎不正确 - 除非您使用的是ASP.NET路由或某些网址重写,否则必须存在.asmx
。
假设您的路由/重写确实正常工作: 通常,如果它是普通(SOAP)Web服务,则启用HTTP get -
<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)
您可能还需要调整Response Format是否需要JSON或XML。