【发布时间】:2012-03-30 03:47:12
【问题描述】:
我创建了一个 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.config 吗?
-
后面的代码是webservice还是webmethod?如果它后面的代码中的 webmethod 需要将方法定义为静态。
-
尝试将返回值存储在变量中,然后显示在列表框或其他内容中,当您进行此调用时:mysite.com/services/Amounts/GetAmount .... 为什么值 amts 没有传递或者是在通话中提供?可能是它发现与方法的签名不匹配。虽然我不确定你是如何在客户端实现它的:)
-
另外,看看这个,可能对您的分析有所帮助:checkupdown.com/status/E500.html.So,我想这是您的 Web 方法定义的某种问题,而不是来自客户端应用程序 :)
-
这就是事情,还有其他服务,如 /Amounts/InsertProductAmount 可以工作,就像如果你输入那个 url 它不会返回它刚才说的错误......“超出数组索引”或其他东西..但是没关系..因为我知道实际上有人在传递 JSON 时可以工作。我正在使用 Visual Studio 2008 .Net Framework 3.5
标签: c# asp.net web-services asmx