Неверное имя веб-метода - PullRequest
0 голосов
/ 30 марта 2012

Я создал веб-метод, но когда я захожу на сайт и набираю, например, 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".

1 Ответ

0 голосов
/ 30 марта 2012

Что вы пытаетесь сделать здесь? Вам нужно разместить больше кода и web.config. Какую версию .NET вы используете здесь? Вся эта информация может дать вам лучший ответ.

Во-первых, ваш URL http://mysite.com/services/Amounts/GetAmount не кажется правильным - где-то должен быть .asmx, если вы не используете маршрутизацию ASP.NET или некоторую перезапись URL.

Предполагая, что ваша маршрутизация / перезапись действительно работает правильно: в общем, если это обычный (SOAP) веб-сервис, тогда включите HTTP get -

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

Если вы пытаетесь создать службу, вызываемую из сценария (ScriptService), то для службы asmx вам нужно пометить метод как ScriptService, и вам может потребоваться настроить web.config в зависимости от версии .NET. Также вам нужно включить HTTP GET - например,

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

Вам также может понадобиться настроить Формат ответа , хотите ли вы JSON или XML.

...