[C#] Web service initialisatie mislukt

Pagina: 1
Acties:
  • 112 views sinds 30-01-2008
  • Reageer

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 17-04 11:11

mOrPhie

❤️❤️❤️❤️🤍

Topicstarter
Ik heb een webservice. De webservice draait lokaal en gebruikt een eigen authentication header implementatie. Daarnaast heb ik een webclient welke deze webservice aanroept. In de webclient heb ik in Visual Studio een web reference aangemaakt. Deze webclient is een DLL die middels verschillende kanalen wordt aangeroepen. Een van de kanalen is een directe aanroep van de functie, welke het resultaat toont in een webapplicatie. Dit werkt goed. Een ander kanaal is een eigen implementatie van een functie-scheduler. Dit is een NT Service. Wanneer de NT service de functie aanroept (en dus binnen zijn context) krijg ik deze error bij de initialisatie van de web reference:

code:
1
2
3
4
5
System.Configuration.ConfigurationException: Missing required Web Services section of the Web.config file.
     at System.Web.Services.Configuration.WebServicesConfiguration.get_Current()
     at System.Web.Services.Protocols.SoapClientType..ctor(Type type)
     at System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
     at WebService.MyWebService..ctor()


Het lijkt erop dat hij de configuratie van webservices niet kan vinden. Echter, wat moet hij met een web.config file? Er is in de NT-service geen sprake van een webapplicatie (hooguit een client) en de communicatie met de webservice komt hij niet eens aan toe. Bovendien staat in mijn Machine.config deze Web Services section wel en zou hij deze configuratie dus altijd moeten hebben. Missing? Het is er wel, maar hij kan het dus niet vinden, blijkbaar.

Ik heb met wsdl.exe zelf een cs-file gegenereerd in plaats van dit door visual studio te laten doen. Deze cs-file heb ik vervolgens in het project opgenomen en de webreference verwijderd. Dit mocht niet baten, het probleem blijft.

Op Google is hier barweinig over te vinden. Met heel veel creatief zoekwerk kwam ik op deze link:
http://groups.google.nl/g...=1&hl=nl#e8cdfe29d15dd0cb

Deze brengt geen oplossing, alleen dat wsdl.exe deze error ook kan geven. Alsof de error dus puur komt uit het genereren van de cs-file. Aangezien ik deze cs-file zelf al heb gegenereerd en de web reference weg heb gelaten is het uitgesloten dat er in run-time nog een generatie plaatsvindt.

Qua code betreft het hier niets spannends. Gewoon een webclient en een webservice. Dit zou net zo goed een hello-world voorbeeld kunnen zijn, aangezien hij niet eens voorbij de initialisatie van de reference komt. Deze NT service doet niets anders dan een functie invoken op een vooraf bepaald tijdstip. Het gaat dus om de context waarbinnen het draait: een NT Service. Niet om code. Want bij directe aanroep werkt het prima.

Om rechtenkwesties uit te sluiten heb ik de NT service op local administrator gedraait. Het probleem blijft echter bestaan.

Heeft iemand misschien een lichtje in deze duisternis? Ik verwacht geen oplossingen, want dit is een heel vreemd probleem wat weinig voorkomt (gezien de google hits), maar wellicht een indicatie of iemand die een soortgelijk iets heeft meegemaakt zou al genoeg zijn. ;)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • EfBe
  • Registratie: Januari 2000
  • Niet online
web-service
web.config
web-service wordt aangeboden dmv de web-server IIS via een pseudo web-page met extensie asmx

hoezo, waarom web.config?

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Ik denk dat de TS bedoelt:
wat moet m'n windows service met een web.config
Wanneer krijg je die error precies ? Op het moment dat je je webservice voor de eerste keer aanroept ?

https://fgheysels.github.io/


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 17-04 11:11

mOrPhie

❤️❤️❤️❤️🤍

Topicstarter
EfBe schreef op vrijdag 23 december 2005 @ 13:12:
web-service
web.config
web-service wordt aangeboden dmv de web-server IIS via een pseudo web-page met extensie asmx

hoezo, waarom web.config?
De webservice is nog niet aangeroepen op het moment dat de error optreedt. De webclient is een functie binnen een dll, welke door de NT-service wordt geinvoked. De client is geen webapplicatie en heeft dus geen enkele link met een web.config.
whoami schreef op vrijdag 23 december 2005 @ 13:20:
Ik denk dat de TS bedoelt:
Wanneer krijg je die error precies ? Op het moment dat je je webservice voor de eerste keer aanroept ?
In .NET wordt een referentie gemaakt met een webservice, door een .cs-file te genereren aan de hand van de WSDL van de webservice. Dit kan in visual studio (met het leggen van een web reference) of zelf met wsdl.exe. Ik heb beide geprobeerd. Deze referentie is op zichzelf ook gewoon een klasse met een lege constructor. In de callstack hierboven is dat WebService.MyWebService..ctor(). In deze constructor treedt dus het probleem op, waarbij het probleem waarschijnlijk in het overgeerfde constructor van SoapHttpClientProtocol optreedt, waarin (ik neem aan) de Web Services configuratie wordt opgehaald. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Eh, ik weet wel hoe een webservice aangeroepen wordt hoor. :)

Als jij echter zegt dat je die webservice kunt aanroepen vanaf een andere client, die geen windows service is, dan zal het probleem wel niet bij de gegenereerde proxy class gaan liggen.

Je zegt dat je met een custom authentication header werkt; heb je al eens geprobeerd om een simpele webservice te maken (die bv gewoon 'hello world' returnt), en die geen gebruikt maakt van welk soort security dan ook, en heb je deze al eens proberen aanroepen vanuit een windows service ?

https://fgheysels.github.io/


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 17-04 11:11

mOrPhie

❤️❤️❤️❤️🤍

Topicstarter
whoami schreef op vrijdag 23 december 2005 @ 14:36:
Eh, ik weet wel hoe een webservice aangeroepen wordt hoor. :)
Dat weet ik, het was meer ter achtergrondinfo om aan te geven waar de fout optreedt. ;)
Het begrip "web reference" is namelijk te abstract, wanneer je niet weet dat daar een klasse uit gegenereerd wordt.
Als jij echter zegt dat je die webservice kunt aanroepen vanaf een andere client, die geen windows service is, dan zal het probleem wel niet bij de gegenereerde proxy class gaan liggen.
Ik wilde niets uitsluiten. Maar zoals ik al aangeef, ligt het meer in de context de de code. Als je echter 3 uur naar hetzelfde probleem zit te staren, ga je het ergens anders zoeken. :)
Je zegt dat je met een custom authentication header werkt; heb je al eens geprobeerd om een simpele webservice te maken (die bv gewoon 'hello world' returnt), en die geen gebruikt maakt van welk soort security dan ook, en heb je deze al eens proberen aanroepen vanuit een windows service ?
Dat wil ik best proberen, waar het niet de authenticatie nog helemaal niet aan de orde is. Ik heb even gedacht dat dit het probleem is, maar het zou het niet mogen zijn. De referentie (proxy) klasse kan namelijk al niet geinitialiseerd worden. Laat staan dat ik een authentication header invul. Ik ben nu een testproject aan het maken om wat te zien wat ik uit kan sluiten. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 17-04 11:11

mOrPhie

❤️❤️❤️❤️🤍

Topicstarter
Iemand nog een idee? :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.

Pagina: 1