WCF Service add service reference

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 11-09 19:49

Guldan

Thee-Nerd

Topicstarter
Ik ben nu voor het eerst bezig met webservice software factory icm met WCF services. Er is besloten om de wcf services te hosten in een andere omgeving dan de front-end (silverlight). Nu is dit niet helemaal zoals bedoelt is maar icm met cross domain is dit goed op te lossen. Het probleem waar ik tegen aan loop is het volgende:

Ik heb een lokale ontwikkelomgeving waarop de silverlight kant draait. Nu zou ik graag verbinden met de webserver op de ontwikkel server (dus niet lokaal). Dit gaat echter goed behalve bij het toevoegen van een web reference in visual studio. Op het moment dat ik dan de service details ga ophalen krijg ik de volgende foutmelding:

code:
1
2
3
4
5
The HTML document does not contain Web service discovery information.
Metadata contains a reference that cannot be resolved: 'http://****/OrganisationService.svc'.
Content Type application/soap+xml; charset=utf-8 was not supported by service http://*****/OrganisationService.svc.  The client and service bindings may be mismatched.
The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..
If the service is defined in the current solution, try building the solution and adding the service reference again.


Nu heb ik gegoogled en gevonden dat dit komt doordat in de behaviour van de webservice ik moet aangeven dat "httpgetenabled" true moet zijn en een de volgende tag aanwezig moet zijn:
XML:
1
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />


Na het toevoegen van die twee dingen werkt het wel zolang ik maar op mijn onwikkelmachine die service draai. Probeer ik hem echter te draaien van de onwikkelserver (met dezelfde web.config) dan kan ik de webreference niet toevoegen (in VS2010) met de bovenstaande foutmelding tot gevolg. Het gaat hier om een niet beveiligde webservice (voor alsnog) dus dat kan ook niet het probleem zijn.

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Je moet inderdaad een mexHttpBinding hebben als je je service op het http protocol aanbied. Maar dat de ontwikkelomgeving de mex binding niet ziet terwijl je devbak dat wel doet is vreemd.

Staat je ClientAccesPolicy wel goed?

Maar waarom zou je in de ontwikkelomgeving apart nog een keer add service reference moeten doen?
Als je devbak het wel doet, dan check je dat toch in versiebeheer. Het gaat er uiteindelijk om dat je de proxy hebt en er een berg config in je web.config staat.
Als je die hebt dan is het enigste probleem het maken van een verbinding.

Er zijn wat haken en ogen als je met Silveright gebruik gaat maken van WCF. Lees dit eens voor wat meer in-depth info

edit: Overigens als WCF nieuw voor je is (wat ik aanneem gezien je mexHttpBinding opmerking, wat echt basic stuff is). Dan raad ik aan dat je eerst eens gaat kijken naar basic WCF tutorials danwel in combinatie met Silverlight. De webservice factory voegt een hele berg zooi toe aan WCF waardoor het veel moeilijker word dan dat het is.

edit2: Weet niet wat precies je insteek is m.b.t het gebruik van WCF. Maar wellicht dat dit project wel interessant is, aangezien het ook een Silverlight implementatie bevat, en verder maar een hele lichte schil om WCF is.

[ Voor 34% gewijzigd door D-Raven op 16-03-2011 10:21 ]


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Foutmelding al eens in Google gegooid? De eerste hit vertelt al aardig wat.

Wat is verder de binding van je service? wsHttp? basicHttp? Moet je wel een Web Reference toevoegen, of misschien een Service Reference? :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
CodeCaster schreef op woensdag 16 maart 2011 @ 10:19:
Foutmelding al eens in Google gegooid? De eerste hit vertelt al aardig wat.
Yup, dat heeft hij al gedaan. Tenminste, wat ze daar aandragen is precies wat hij al heeft gedaan.
Wat is verder de binding van je service? wsHttp? basicHttp? Moet je wel een Web Reference toevoegen, of misschien een Service Reference? :)
Basic want hij heeft geen beveiliging. Daarnaast is het altijd Service Reference want Web Reference is voor de oude asmx services.

[ Voor 5% gewijzigd door D-Raven op 16-03-2011 10:25 ]


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Die vraag was dan ook naar aanleiding van:
Dit gaat echter goed behalve bij het toevoegen van een web reference in visual studio
Daarnaast linkt het hoogst beoordeelde SO-antwoord uit mijn link hierheen, waarin wordt aangeraden de service-configuratie aan te passen voor Silverlight, en dat gaat wel iets verder dan enkel het toevoegen van een mex-endpoint.

[ Voor 59% gewijzigd door CodeCaster op 16-03-2011 10:36 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 11-09 19:49

Guldan

Thee-Nerd

Topicstarter
@Deathraven: Ik ben het wel met je eens waarom zou je inderdaad de tweede keer die reference willen toevoegen aangezien je normaal gesproken alleen de url ff moet veranderen in de client config. Ik snap ook wel dat dat the way to go is. Is het trouwens ook in silverlight mogelijk om de clientconfig te wijzigen a.d.h.v de build configuration zoals dat wel kan in ASP.Net?. Ik zal je link thuis ff doorlezen: ik had dezelfde link al gevonden, maar er ff snel doorheen gescand.

@CodeCaster: De binding staat op basic http, en ik voeg hem toe via Add Service Reference.

Edit;

Jullie gaan veel te snel voor mij.. ik zal die link van CC ook ff doorlezen :)!

Edit:2

Codecaster ik ga ervanuit dat jij bedoelt het inschakelen van de aspNetCompatibility. (dit stond er namelijk ook al in.

[ Voor 16% gewijzigd door Guldan op 16-03-2011 10:46 ]

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
CodeCaster schreef op woensdag 16 maart 2011 @ 10:33:
Die vraag was dan ook naar aanleiding van:

[...]
Ah, die had ik niet gezien, excuseer :)
Daarnaast linkt het hoogst beoordeelde SO-antwoord uit mijn link hierheen, waarin wordt aangeraden de service-configuratie aan te passen voor Silverlight, en dat gaat wel iets verder dan enkel het toevoegen van een mex-endpoint.
Is dat alleen voor ingelogde gebruikers ofzo? Want ik zie de link daar niet.:? Maargoed maakt niet uit, hij staat hier nu :)
Pagina: 1