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