Avatar billede dingemann Novice
22. august 2012 - 22:57 Der er 2 kommentarer og
1 løsning

WCF i Windows Service generere forkert WSDL/Reference.vb-fil

Hej,

Jeg har efterhånden prøvet det en del gange (jeg kan ihvertfald tælle 5) og hver gang har løsningen været at starte et nyt tomt projekt og copy/paste koden over. Således skabes projektet stort set identisk men dog uden nedenstående fejl. Vi taler VS2010

1) Lav et tomt Windows Service-projekt
2) Tilføj en WCF i Windows Service-projektet. Dette vil lave WCF'en Windows Service-baseret istedet for IIS-baseret.
3) Tilføj en tom klasse,fx med navnet Hest, og put nogle properties i den efter eget valg
4) Tilføj en funktion eller en sub til eksponering via OrderContract-filen og den anden fil som jeg ikke kan huske hvad hedder. I Sub'en eller funktionen afkræv da en en parameter As Hest:

Public Function Tester (myHest As Hest) As Boolean
Debug.WriteLine ("ko")
End Function

5) Tilføj nu et Form eller et Consol-projekt

6) Build hele solutionen og tilføj evt en Setup Deployer til Windows Service-projektet.

7) Start servicen fra services.msc

8) i Form eller Consol-projektet tilføjes nu Service Reference til den installerede Windows Services' WCFs URL.

9) Nu hentes diverse informationer ned til Form eller Consol-projektet

10) i Form eller Consol-projektet browses nu under Service Reference, den nye reference. Under Reference.svcmap er filen Reference.vb

Og det er så her jeg oplever fejlen. Tilsvarende til ovenstående er mit problem at jeg ikke får Hest-klassen med i Reference.vb-filen så jeg kan teknisk set ikke anvende funktionen Tester.
I Reference.vb står Hest-klassen også angivet som det lokale namespace:

Public Function Tester (myHest As Hest) As Boolean
Debug.WriteLine ("ko")
End Function

hvor det istedet burde ha været, når det virker korrekt:

Public Function Tester (myHest As [namespace for Service Referencen som jeg selv definerer når jeg adder Service Referencen].Hest) As Boolean
Debug.WriteLine ("ko")
End Function

Namespacet er simpelthen forkert og klassen jeg skal bruge mangler.
Jeg har før, bilder jeg mig ind, haft held til at rette problemet ved at slette alt i C:\Users\[BRUGER]\AppData\Local\Microsoft\Team Foundation\3.0\Cache men det hjælper mig ikke nu hvor jeg igen sidder med problemet.

Jeg har snakket med mange nørder der ikke fatter hvad der sker for jeg SKAL jo ha objektet med!

Fejlen/problemet opstår efter tid. Det virker altid fint i starten men efter et projekt har levet i en rum tid så går den i ged med Reference.vb der ikke bliver opdateret korrekt.

Anyone? Jeg er meget villig til at kaste flere point efter denne her sag - men jeg tvivler på at det gør en forskel.

// p
Avatar billede dingemann Novice
06. september 2012 - 02:09 #1
Det tog tid at løse problemet, men det lykkedes. Det er åbenbart ikke smart at have . i assembly root-namespacet! Det fåkker åbenbart WCF'en op. Så note til self, og alle andre: undlad venligst . i assembly root namespace!
Avatar billede dingemann Novice
06. september 2012 - 02:10 #2
Det tog tid at løse problemet, men det lykkedes. Det er åbenbart ikke smart at have . i assembly root-namespacet! Det fåkker åbenbart WCF'en op. Så note til self, og alle andre: undlad venligst . i assembly root namespace!
Avatar billede dingemann Novice
06. september 2012 - 02:10 #3
fåk hvor er det iøvrigt ringe at mit indlæg ikke postes første gang. Jeg poster igen! Og vupti!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester