2010-12-28 7 views
4

Ich habe einen Webservice zum Abrufen von Elementen im Vollkalender aufgerufen. Das Verfahren ist nie und Firebug gibt diesen Fehler genannt:Webservice - unbekannte Webmethode Parametername Methodenname

* „POST [http]: // localhost: 50536/FullCalendar/ServicioFullCalendar.asmx/GetEventosCalendario POST [http]: // localhost: 50536/FullCalendar/ServicioFullCalendar.asmx/GetEventosCalendario

500 Internal Server Error 1.01s“ "unbekannter Web-Methode Parametername Methodenname" *

ist der asmx.vb Code:

<System.Web.Script.Services.ScriptService()> _ 
<System.Web.Services.WebService(Namespace:="http://localhost/uva/")> _ 
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<ToolboxItem(False)> _ 
Public Class ServicioFullCalendar 
    Inherits System.Web.Services.WebService 

    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _ 
    <WebMethod(MessageName:="ObtieneEventos")> _ 
    Public Shared Function GetEventosCalendario(ByVal startDate As String, ByVal endDate As String) As String 
     Try 
      Return CalendarioMensualDAO.Instance.getEventos(startDate, endDate) 

     Catch ex As Exception 
      Throw New Exception("FullCalendar:GetEventos: " & ex.Message) 
     Finally 

     End Try 
    End Function 

Der Webservice ist „geladen“ aus dem fullcalendar wie folgt:

events: "ServicioFullCalendar.asmx/GetEventosCalendario", 

Antwort

11

, dass der Fehler war: die Methode „nicht freigegeben“ werden musste, und ohne die „Messagename“:

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _ 
<WebMethod()> _ 
Public Function GetEventosCalendario(ByVal startDate As String, ByVal endDate As String) As String 
    Try 
     Return CalendarioMensualDAO.Instance.getEventos(startDate, endDate) 

    Catch ex As Exception 
     Throw New Exception("FullCalendar:getEventos: " & ex.Message) 
    Finally 

    End Try 
End Function 
1

Ich empfehle Ihnen, verwenden Fiddler im Netzwerkverkehr zu schauen und sehen, was an den Dienst gesendet hat wird. Dann finde heraus, warum es auf diese Weise gesendet wird.

Es scheint wahrscheinlich, dass Sie wirklich einen Parameter namens "Methodenname" senden.

+0

Danke für die Empfehlung – ch3r1f

1

Ich hatte das gleiche Problem und nach realisiert viel Zeit zu verbringen, dass das Verfahren war markiert als geschützt und nicht PUBLIC. Ich machte es öffentlich und es fing an zu arbeiten.

+0

Ich habe vergessen, meine Methode zu statisch zu ändern. Sobald ich das getan habe, fing es an zu arbeiten. – EbbnFlow