Hoofdcategorieën
Topicacties

[ASP.NET 3.5]Webservice niet gevonden.

Pagina: 1

Reageer Nieuw Topic
Topeka, KS, USA

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 idint xint 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?

Gratis iPod!
In de USA.

fka DrClearbottom
Berichten: 735
Reg. datum: 29 maart 2001

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...

Daspeed wijzigde dit bericht 05-07-2008 14:38 (27%)
Reden: toevoeging

 
Berichten: 5.973
Reg. datum: 02 februari 2004

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

Haan wijzigde dit bericht 05-07-2008 16:20 (10%)

Kater? Eerst water, de rest komt later
Bouw mee aan Tweak City! Klik hier voor meer info!

Berichten: 303
Reg. datum: 28 maart 2006

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.

negerzoen wijzigde dit bericht 05-07-2008 20:12 (8%)

Canon 30D, 17-40mm f/4, 24-105mm f/4, 50mm f/1.8, 70-200mm f/4, 430EX
Leica R4 '82, 24mm f/2.8, 50mm f/2.0, 60mm f/2.8 macro, 135mm f/2.8

Topeka, KS, USA

@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!

Gratis iPod!
In de USA.

Pagina: 1



VNU Media logo Powered by True

© 1998 - 2009 Tweakers.net - Alle rechten voorbehouden

Uitgever van: