Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[ASP.NET 3.5]Webservice niet gevonden.

Pagina: 1
Acties:

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Hi :)

Ik heb hier een ASP.NET application, met daarin een .asmx (webservice). Hij is genaamd 'WordsService.asmx'

Even wat code:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* usings */

namespace MagWords
{
    /// <summary>
    /// Summary description for WordsService
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class WordsService : System.Web.Services.WebService
    {

        /// <summary>
        /// Updates the location of the object
        /// </summary>
        /// <param name="id">The id of the object</param>
        /// <param name="x">The x location</param>
        /// <param name="y">The y location</param>
        [WebMethod (CacheDuration=0)]
        public static void UpdateWordLocation(int id, int x, int y)
        {
            /* snip */
        }
    }
}


In mijn Index.aspx heb ik een scriptmanager.

XML:
1
2
3
4
5
    <asp:ScriptManager ID="scriptManager" runat="server">
        <Services>
            <asp:ServiceReference Path="~/WordsService.asmx" />
        </Services>
    </asp:ScriptManager>


Nu zou ik dus ergens dit moeten kunnen doen:

JavaScript:
1
WordsService.UpdateWordLocation(1, 50, 60);

Helaas geeft Firebug mij dan de error: 'WordsService not found'

Als ik kijk in de source wordt er alleen een referentie gelegd naar 'WordsService/jsdebug', en die pagina is dan helaas leeg.

Ik heb deze code naar een WebService verplaatst voor het 'proper' houden van mijn applicatie.

Toen ik deze in mijn Index.aspx had, en PageMethods aan had staan kon ik deze mooi gebruiken.

Kan iemand mij in de juiste richting schoppen?

Going for adventure, lots of sun and a convertible! | GMT-8


  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 13:20
Ik kan er helemaal naast zitten, maar volgens mij mag een webmethod niet static zijn.

Overigens, is een SOAP webservice voor een AJAX call niet een enorme overkill?
edit: never mind mijn laatste opmerking, ik zie dat [System.Web.Script.Services.ScriptService] zorgt voor een JSON response...

[ Voor 27% gewijzigd door Daspeed op 05-07-2008 14:38 . Reden: toevoeging ]


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17-11 08:45

Haan

dotnetter

Is het niet veel makkelijker om die UpdateWordLocation in javascript te schrijven en in een los .js bestand te zetten en die mee te laden?

Of nog makkelijker, een codefile in je AppCode map zetten met een simpele class met die method erin?dat is met javascript aanroepen dan weer wat lastiger

[ Voor 10% gewijzigd door Haan op 05-07-2008 16:20 ]

Kater? Eerst water, de rest komt later


Verwijderd

Ik heb geen ervaring met XML Webservices i.c.m. ASP.NET Ajax, maar wat ik wel weet is dat je namespace niet goed staat. Als je WCF ipv XML Webservices gebruikt moet je de namespace in je attribute of leeghalen of er een normale namespace neerzetten.

C#:
1
2
3
4
5
6
namespace MagWords 
{ 
    /// <summary> 
    /// Summary description for WordsService 
    /// </summary> 
    [WebService(Namespace = "MagWords")]

Je zou je service dan zo moeten kunnen benaderen:

JavaScript:
1
MagWords.WordsService.UpdateWordLocation(1, 50, 60);


Als dat niet werkt dan komt het waarschijnlijk omdat je client library (JavaScript bestand) niet geregistreerd is in de script manager. Dit kun je doen door het betreffende JavaScript bestand te registeren in de ScriptManager als script (je hebt nu alleen een service).

Waarom trouwens niet WCF gebruiken? WCF is volledig backward compatible met SOAP als je dat per se wilt.

[ Voor 8% gewijzigd door Verwijderd op 05-07-2008 20:12 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
@Negerzoen: die namespace was de oplossing! Prachtig :D en bedankt!.

Een WCF is al zoveel meer :) en ik ben aan het leren ;) Daarom beetje rustig beginnen :)

Heel fel bedankt allemaal!

Going for adventure, lots of sun and a convertible! | GMT-8