[VB.NET]embedded soap server

Pagina: 1
Acties:

  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

Topicstarter
Voor een applicatie die ik gemaakt heb zou ik graag een webservice interface maken.

Voor deze interface wil ik uiteraard niet heel IIS als dependency hebben. Ik zoek een 'embedded' oplossing, de webserver moet IN de standalone applicatie zitten.

Nu ben ik al een tijdje wezen googlen naar een oplossing, maar deze lijkt er niet te zijn. Nu moet ik zeggen dat ik vog weinig met VB gedaan hebt (JAVA man (damn, was er maar axis voor VB;) )) en is het goed mogelijk dat ik simpelweg niet de juiste zoektemen ken.

Iemand een oplossing ?

  • Lukse
  • Registratie: Januari 2004
  • Laatst online: 12-04-2023
Zoek eens op Cassini. Dat is een opensource webserver van Microsoft.
Dat is ook de webserver die gebruikt wordt in Visual Studio.

  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

Topicstarter
Lukse schreef op vrijdag 23 mei 2008 @ 15:30:
Zoek eens op Cassini. Dat is een opensource webserver van Microsoft.
Dat is ook de webserver die gebruikt wordt in Visual Studio.
Die webserver is idd erg makkelijk te integreren. maar voor zover ik kan zien is het niet mogelijk om hier een webservice in te draaien...

Verwijderd

Dat kan prima hoor. Cassini is dan wel een simpele webserver zonder toeters en bellen, maar voor een niet al te ingewikkelde webservice die niet zoveel connecties tegelijk hoeft te servicen voldoet 'ie uitstekend.

VS2005 gebruikt 'm als default bij het testen van webservices vanuit de IDE.

[ Voor 15% gewijzigd door Verwijderd op 23-05-2008 18:07 ]


Verwijderd

Als je .NET 3.0 gebruikt kun je een hosted WCF (Windows Communication Foundation) service maken. Deze is backward compatible met SOAP en biedt daarnaast vele andere mogelijkheden voor communicatie.

Afhankelijk van je doelgroep kan een nadeel zijn dat je applicatie dan .NET 3.0 vereist (XP, 2003, Vista en 2008 only). Verder is Visual Studio 2008 wel erg aangeraden om het maximale uit WCF te halen.

[ Voor 12% gewijzigd door Verwijderd op 23-05-2008 23:02 ]


  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

Topicstarter
Ik heb ondertussen cassini draaien (V2) en simpele webservices draaien als een trein, bedankt voor de hulp tot zo ver.
Nu loop ik tegen een volgend probleem aan.

De webservices die cassini serveert, staan in een aparte DLL, volgens mij is dit niet anders mogelijk (ik kan er heel goed naast zitten).

Nu dacht ik dit wel op te kunnen lossen door een singleton te gebruiken in de main app, en dan via deze singleton een ref te krijgen naar de app vanuit de webservices zelf.

Dit lijkt alleen niet te kunnen, de webservice lijkt een kopie van de DLL te gebruiken, of zelfs een compleet andere omgeving.

code:
1
2
3
4
5
6
7
8
9
 Public Shared Function GetInstance() As Service
        If _instance Is Nothing Then
            MsgBox("instance created")
            _instance = New Service()
        Else
            MsgBox("instance returned")
        End If
        Return _instance
    End Function


deze code geeft "instance created" bij het starten van de main app, zoals verwacht. maar ook bij het aanroepen van de webservice wordt er een nieuwe instantie gemaakt.

dit is de code van de webservice:
code:
1
2
3
4
5
6
7
8
9
10
Public Class Service1
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function Version() As String
        Dim service As FlexBridgeNet.Service
        service = FlexBridgeNet.Service.GetInstance()
        Return service.getVersion
    End Function
End Class


in het webservice project heb ik de dll van de main app toegevoegd als reference, en copy local heb ik op false gezet.

alle dll's zijn strong named.

in het kort;
hoe kan ik een applicatie bouwen welke een embedded webservice heeft, waarbij de webservice direct met de main app kan communiceren.
Pagina: 1