Hi,
I have managed to succcessfuly install two service tiers on our development server, and can open both via the RTC.
So i now have two NAV services, but only one Web Service.
I wish both systems to publish web services.
My original URL
http://localhost:7047/DynamicsNAV/ws/NAV2009/Services
Works fine. However when I change the servicename and companyname to match my second instance it will not load a list of web services.
http://localhost:7047/DynamicsNAVGCH/ws/GCH/Services
Do I need to create a second web service for the second instance?
Thanks
John
Comments
I've tried to do this with sc command and found out the strange thing.
I used the command: The service appeared in service snap-in. But when I started this server in event view appeared the event: But IMHO it should be: (I don't want to share ports)
Of course I cannot see web services, but I can to open RTC and connect to "localhost:8046/test", even if I do not create Nav Server Service at all.
Here are changed strings in CustomSettings.config: Where is my mistake? ](*,)
http://blogs.msdn.com/freddyk/archive/2008/10/29/the-service-tier.aspx
http://blogs.msdn.com/freddyk/archive/2008/10/29/multiple-service-tiers.aspx
http://blogs.msdn.com/freddyk/archive/2008/10/31/4-bat-files-for-the-client-tier.aspx
You will probably find the answer to your question in the second post.
I did this because I found out that creating the webservice tier was very sensitive to naming etc. - and I got it wrong every time myself.
Group Program Manager, Client
Microsoft Dynamics NAV
http://blogs.msdn.com/freddyk
The information in this post is provided "AS IS" with no warranties, and confers no rights. This post does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion.
Your bat-files work fine. Thank you.
I've used information from the second post when I was creating command string.
I just wonder if it possible to create WS manualy? I see it is not trivial task.
I had looked quickly through the blog, but had not noticed it was creating a new Web serivice as well.
Will try this tomrrow.
Thanks
John
There are some very clever people about!
Thanks
John
The posting of Freddy K. is very interesting. However, I think I've missed the important clue (my fault) :?
In a test environment I have the following:
1 Physical Server with 1 SQL Server
2 NST running each on a different database
We can open the 2 databases with RTC as follows:
localhost:7046/DynamicsNAV (without port also works because 7046 is mentioned in the clients config file)
and
localhost:7050/DynamicsNAVTest
So I can use both installations simultaneously.
The is question now:
What is the idea behind the use of the batches and what is easier then? Again, I'm sure it's a good idea but I didn't get it by now...
And how would the 2 links look like in Freddys solution?
Thanks in advance
Thomas
If you add a Web Service listener without the corresponding Service Tier - then it will use type= own which doesn't work.
I will upload a fix later today - it should only use own if it is a servicetier alone - else it should be share.
I guess this is the problem you are running into as well.
Furthermore - some of the .bat files doesn't work if you only have a Web Service Listener (start/stop)
Group Program Manager, Client
Microsoft Dynamics NAV
http://blogs.msdn.com/freddyk
The information in this post is provided "AS IS" with no warranties, and confers no rights. This post does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion.
Thanks for your comment. I did not have problems with your bat files, I rather did not understand the concept behind it. If you would explain it in more detail (also see my questions) I'll be happy.
Thanks
Thomas
However - if you are a partner and you have a service tier machine with a copy of your customers installation for development - you want to streamline the creation of servicetiers - you want to have a structure for service tiers setup and you want to be able to start and stop these from the clients (developers machines or whatever).
This is what I use the .bat files for - I know that the DynamicsNAV instance is in the DynamicsNAV directory and at server:7046/DynamicsNAV - and I know how to get to the Web Service. Also Services are named consistently in services so that they are easy to find.
So the idea with the .bat files are consistency - just a helping hand.
Group Program Manager, Client
Microsoft Dynamics NAV
http://blogs.msdn.com/freddyk
The information in this post is provided "AS IS" with no warranties, and confers no rights. This post does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion.
Thanks a lot. One last thing to get it for me:
What's the idea behind NetTcpPortSharing and has your solution something to do with it?
Thanks in advance
Thomas
Default, that service is not started - so I create a dependency to the service in order to make sure it starts.
I like having service tiers seperated by instance name instead of port numbers - I think it is easier.
Group Program Manager, Client
Microsoft Dynamics NAV
http://blogs.msdn.com/freddyk
The information in this post is provided "AS IS" with no warranties, and confers no rights. This post does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion.
Ah, I think I got it.
So
localhost:7046/DynamicsNAV
localhost:7050/DynamicsNAVTest
can be replaced by
localhost/DynamicsNAV
localhost/DynamicsNAVTest
when using portsharing?
Thomas
localhost:7046/DynamicsNAV
localhost:7046/DynamicsNAVTest
(I actually don't know whether it adds the 7046 by default....)
Group Program Manager, Client
Microsoft Dynamics NAV
http://blogs.msdn.com/freddyk
The information in this post is provided "AS IS" with no warranties, and confers no rights. This post does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion.
MVP - Dynamics NAV
My BLOG
NAVERTICA a.s.
But if i change port in CustomSettings.config i can connect two services:
localhost:7046/DynamicsNAV
localhost:7048/DynamicsNAVTest
When it's the same port and i try to connect to RTC, Net.Tcp Port Sharing Service crash.
I work with window server 2003R2.
Any idea?
2) You need to stop originally installed service tier to be able to create and use port sharing. The original service doesn't support it (have no enabled this possibility).
MVP - Dynamics NAV
My BLOG
NAVERTICA a.s.
Aplication:
Error .NET Runtime optimization Service
Success:1101
.NET Runtime Optimization Service (clr_optimization_v2.0.50727_32) - Failed to compile: Microsoft.ReportingServices.QueryDesigners, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 . Error code = 0x80070002
In Sistem 2 errors:
Tipo de suceso: Error
Origen del suceso: SMSvcHost 3.0.0.0
Categoría del suceso: Sharing Service
Id. suceso: 10
Fecha: 13/05/2009
Hora: 15:55:29
Usuario: NT AUTHORITY\Servicio de red
Equipo: SRVSQL
Descripción:
No se encuentra la descripción del Id. de suceso ( 10 ) en el origen ( SMSvcHost 3.0.0.0 ). Es posible que el equipo local no tenga la información de Registro o archivos DLL de mensajes necesarios para mostrar mensajes desde un equipo remoto. Es posible que pueda usar el indicador /AUXSOURCE= para recuperar esta descripción; consulte Ayuda y soporte técnico para obtener más detalles. La siguiente información es parte del suceso: System.ServiceModel.Diagnostics.CallbackException: El elemento AsyncCallback inició una excepción. ---> System.ServiceModel.Diagnostics.ExceptionUtility+InternalException: Error en Windows Communication Foundation. Las aplicaciones no deben intentar controlar este error.
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously, Exception exception)
en System.ServiceModel.Activation.WorkerProcess.DispatchSessionAsyncResult.DispatchSessionCompletedCallback(IAsyncResult result)
en System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
en System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.CallComplete(Boolean completedSynchronously, Exception exception)
en System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.FinishSend(IAsyncResult result, Boolean completedSynchronously)
en System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.SendCallback(IAsyncResult result)
en System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
en System.ServiceModel.Dispatcher.DuplexChannelBinder.AsyncDuplexRequest.Done(Boolean completedSynchronously)
en System.ServiceModel.Dispatcher.DuplexChannelBinder.AsyncDuplexRequest.GotReply(Message reply)
en System.ServiceModel.Dispatcher.DuplexChannelBinder.HandleRequestAsReplyCore(Message message)
en System.ServiceModel.Dispatcher.DuplexChannelBinder.HandleRequestAsReply(Message message)
en System.ServiceModel.Dispatcher.ChannelHandler.HandleRequestAsReply(RequestContext request)
en System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
en System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
en System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result)
en System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
en System.ServiceModel.Channels.FramingDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult result)
en System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
en System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
en System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object state)
en System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state)
en System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes)
en System.ServiceModel.Channels.OverlappedContext.CompleteCallback(UInt32 error, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
en System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
en System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP); SMSvcHost; 11320.
And another
Tipo de suceso: Error
Origen del suceso: Service Control Manager
Categoría del suceso: Ninguno
Id. suceso: 7034
Fecha: 19/05/2009
Hora: 11:08:37
Usuario: No disponible
Equipo: SRVSQL
Descripción:
El servicio Net.Tcp Port Sharing Service se terminó de manera inesperada. Esto ha sucedido 3 veces.
Para obtener más información, vea el Centro de ayuda y soporte técnico en http://go.microsoft.com/fwlink/events.asp.
Any idea? Thanks!!