Dynamics NAV 2009 WebService Beispiel funktioniert bei mir nicht
-
2012. május 2. 16:03
Hallo zusammen,
ich habe ein Problem mit dem Beispiel von MSDN: Walkthrough: Creating and Consuming a Codeunit Web Service
Soweit habe ich alles wie beschrieben in dem Walkthrough ausgeführt (bis auf die Quellcode-Änderungen). Ich nutze Dynamics NAV 2009 auf einer Virtual Machine welche via http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/services auch referenzieren kann und bereits vorhandene WebServices sehe (Testsystem aus einer Kundenumgebung).
Bei den Quellcode-Änderungen komme ich ins Stocken. Folgendes geht bei mir gar nicht:
- service.UseDefaultCredentials = true kann ich gar nicht setzen, da dieses Property nicht vorhanden ist, gleiches gilt für URL
- Ich muss die Klasse Letters_Port verwenden
- Beim Ausführen der Applikation kommt folgende Fehlermeldung
Server stack trace: bei System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() bei System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) bei System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) bei System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) bei UsingLettersService.WebService.Letters_Port.Capitalize(Capitalize request) bei UsingLettersService.WebService.Letters_PortClient.UsingLettersService.WebService.Letters_Port.Capitalize(Capitalize request) in \\%server%\%folder%\%user%\VS2010\Projects\UsingLettersService\UsingLettersService\Service References\WebService\Reference.cs:Zeile 86. bei UsingLettersService.WebService.Letters_PortClient.Capitalize(String inputstring) in \\%server%\%folder%\%user%\VS2010\Projects\UsingLettersService\UsingLettersService\Service References\WebService\Reference.cs:Zeile 92. bei UsingLettersService.Program.Main(String[] args) in \\%server%\%folder%\%user%\VS2010\Projects\UsingLettersService\UsingLettersService\Program.cs:Zeile 17. bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart()
Außerdem gehört zur Fehlermeldung
- System.ServiceModel.EndpointNotFoundException
- InnerException: Die Verbindung mit dem Remoteserver kann nicht hergestellt werden.
- InnerException: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig server:port
Ich verwende dies nun zum ersten Mal und bin etwas irritiert, hierbei kann es sich doch nur um einen Zugriffsfehler handeln oder sehe ich das Falsch? Hat jemand dieses Problem auch schon mal gehabt und kann mir behilflich sein?
Vielen Dank und Gruß
Az összes válasz
-
2012. május 3. 7:09
Hallo timo.mieruch!
Du musst den Nav-Webservice über einen Proxy in dein Project einbinden. Sie dir mal diese Anleitung an.
http://mibuso.com/blogs/ara3n/2009/05/04/web-service-proxy-for-nav-web-service/Ich hoffe das bringt weiter. Andreas(a)Donaubauer.com www.crmfaq.de
-
2012. május 3. 7:15
Hallo Timo,
Deine Frage bezieht sich auf NAV 2009 - du bist allerdings hier im CRM Forum.
Das passende Forum findest du unter: NAV Forum
Als Nicht-NAV-Entwickler hätte ich lediglich folgenden Hinweis: Kontrolliere ob die Firewall auf der VM deaktiviert ist und ob dein Windows (AD) Benutzer genügend Berechtigungen auf dem System hat.
Liebe Grüße,
Andreas
Andreas Buchinger
Microsoft Dynamics Certified Technology Specialist
MCPD: SharePoint Developer 2010 -
2012. május 3. 7:45
Hallo,
das halte ich für wenig sinnig und wüsste nicht warum man das machen sollte? Zumal hier für jeden WebService welchen ich publishe sehr viel Background Arbeit erforderlich ist... Ich habe folgende Anleitung gefunden und es war nur ein Problem mit den Default WebService Parametern die beim Einrichten übernommen werden:
Freddys: Connecting to NAV Web Services from C# using Service Reference (config file version)
Interessanter Weise funzt damit alles aber nur in kompilierter Form und nicht wenn ich das Projekt debugge! Das funktionierte genau einmal und danach nie wieder...
- Szerkesztette: timo.mieruch 2012. május 3. 7:46