Answered Service Tutorial 7 unable to link with different IPs

  • Thursday, May 06, 2010 9:26 PM
     
     

    Hi !

    I think this is not a new question, nevertheless I can't find info about it, even though I found related questions a lot.

     

    Thing is that I've successfully deployed the ServiceTutorial4 in a PC without the MSRDS, I ran it there and it works well. Then I left open a dsshost in the corresponding port /p:40000 /t:40001, and ran in another PC with MSRDS the ServiceTutorial7 modified just by the IP of the other PC, but always get a :

     

    ### Failure Sending Outbound Message ...

     

    I've noticed this error happens when you run the tutorial 7 just as it originally is and you forget opening first the " dsshost /p:40000 /t:40001 " I can run both services in the same PC without conflict, but when changing the 'localhost' to the IP of the other computer it just continues with the failure sending outboung message...

    The modifications I do are just in the ServiceTutorial7.manifest.xml and/or in ServiceTutorial.user.manifest.xml: 

    ORIGINAL :   <d:Service>http://localhost:40000/directory</d:Service>

    MODIFIED : <d:Service>http://10.0.0.100:40000/directory</d:Service>

     

    What can I do ?? 

       -The firewall on the 10.0.0.100 PC is totally turned off.

       -I leave the dsshost opened on the 10.0.0.100 PC, and then run the dsshost with the correct manifest in the other PC.                                          (Just as the correct procedure with the original tutorial)

       -Both PC's are in the same network: 10.0.0.100 and 10.0.0.101.

       -Tried enabling/disabling the network sharing properties.

       -Both PCs are running Windows 7.

     

    Well, I'll appreciate your responses.

Answers

  • Saturday, May 15, 2010 12:13 AM
     
     Answered

    Hi Trevor, thanks for your response, I was starting to think just no one was interested hehe... Answering your question: Yes, i can.

     

    I had tried to find a solution in your PROMRDS book until I found: "A discussion about how to set up wireless networks, and advice on the wide range of scenarios, is outside the scope of this book." =)

    Here I will post my just found solution using Windows 7 in both PCs.

     

    HOW TO DISTRIBUTE SERVICE TUTORIAL 7 INTO DIFFERENT IPs USING WINDOWS7:

    1)  MAKE A CORRECT DEPLOY OF SERVICE TUTORIAL 4 IN THE CORRESPONDING REMOTE PC. THIS MIGHT REFER THE NEED OF INSTALLING AT LEAST THE "[...]Microsoft Robotics Dev Studio 2008 R2\redistributables\Microsoft CCR and DSS Runtime 2008 R2 Redistributable", IF THE REMOTE PC DOESN'T HAVE THE MSRDS INSTALLED, JUST BEFORE RUNNING THE .EXE GENERATED BY DSSDEPLOY. IF YOU JUST DON'T KNOW WHAT DEPLOYING MEANS, GO TO: http://msdn.microsoft.com/en-us/library/bb483012(v=MSDN.10).aspx

     

    2) ONCE THIS IS DONE, IT IS USEFUL TO DOUBLE-CHECK BY RUNNING THE SERVICE MANIFEST THROUGH THE DSS COMMAND PROMPT IN THE REMOTE PC. IF IT RUNS, YOU MAY WANT TO GO TO HTTP://LOCALHOST:<PORT> OR HTTP://<REMOTE-IP>:<PORT> IN AN INTERNET BROWSER TO CONFIRM (IN THE SAME REMOTE PC, OBVIOUSLY =P). IF YOU DON'T KNOW HOW TO RUN A SERVICE FROM COMMAND PROMPT, GO TO: http://msdn.microsoft.com/en-us/library/bb483055(v=MSDN.10).aspx

     

    3) IF EVERYTHING WORKED WELL, THEN MODIFICATIONS IN THE LOCAL PC (WHERE SERVICE TUTORIAL 7 IS GOING TO RUN) ARE REQUIRED JUST IN THE MANIFEST. 

    WHERE IT REFERS: <d:Service>http://localhost:40000/directory</d:Service>

    MAY BE CHANGED TO: <d:Service>http://<REMOTE IP>:40000/directory</d:Service>

       OR: <d:Service>http://<REMOTE PC-NAME>:40000/directory</d:Service>

     

    4) NOW, BEFORE STARTING THE SERVICE TUTORIAL 7 IN THE LOCAL PC, YOU NEED TO START THE NODE IN THE REMOTE PC.

    JUST TYPE IN A DSS COMMAND PROMPT : DSSHOST /P:40000

    ***DON'T USE /T:40001 !!!

     

    5) WITH DSS NODE OPEN IN REMOTE PC, START NODE  IN LOCAL BY RUNNING SERVICE TUTORIAL 7.

     

    IF IT DOESN'T WORK CORRECTLY, DON'T BE SURPRISED...MOST OF THE TIMES HAPPENS TO ALL OF US TO RECEIVE AN ANNOYING MESSAGE TELLING YOU "# FAILURE SENDINGE MESSAGE OUTBOUND....". EVEN THOUGH IT TELLS YOU THAT DETAILS ARE ON THE DEBUG SECTION IN THE NODE, INFORMATION DOESN'T HELP TOO MUCH...BUT IN BRIEF, WHAT IT MEANS IS THAT SOME PREVIOUS NETWORKING AND PERMISSIONS NEED TO BE DONE BEFORE THE CORRECT START-UP OF THE DISTRIBUTED SERVICES.

     

    STEPS FOR SETTING-UP THE NETWORK FOR DISTRIBUTING NODES OVER DIFFERENT IPs:

     

    A) BE SURE TO HAVE LOCAL AND REMOTE PCs IN THE SAME NETWORK, THIS MEANS, JUST THE LAST DIGITS OF EACH IP ARE DIFFERENT.

     

    B) REMOTE PC SHOULD HAVE ALL SET FIREWALL AND ITS SETTINGS TO OFF AND WORKING WITH ADMINISTRATOR PERMISSIONS FOR THE EASE OF RUNNING THE NODES. IF YOU ARE NOT SURE IF YOU HAVE THIS PERMISSIONS TAKE A LOOK INTO: http://www.howtogeek.com/howto/windows-vista/enable-the-hidden-administrator-account-on-windows-vista/

     

    C) NETWORK CONNECTION SHOULD BE AS "HOME NETWORK" (OR BE EQUIVALENT CHARACTERIZED) FOR BOTH PCs. HERE WINDOWS 7 CREATES A PASSWORD FOR THE DEFAULT WORKGROUP IN THE HOME NETWORK. SO ONCE THE FIRST PC IS INSIDE THE HOME NETWORK, IT PROMPTS WITH THE CREATED PASSWORD THAT IS GOING TO BE USED FOR THE SECOND PC TO ACCESS THE SAME WORKGROUP. ANY PC WITHOUT THAT PASSWORD COULD ACCESS THE WORKGROUP, SO YOU SHOULD ENSURE TO HAVE BOTH PCs IN THE SAME WORKGROUP.

     

    D) THE DSS NODE IN THE REMOTE PC SHOULD HAVE SECURITY AUTHENTICATION DISABLED. FOR DOING THIS, YOU NEED TO RUN AS IN STEP 4) REFERRED BEFORE, AND GO TO HTTP://LOCALHOST:40000/SECURITY/MANAGER/EDIT AND SET AUTHENTICATION TO DISABLED. THEN RESTART THE NODE AND CONFIRM WITH THE RED LETTERS IN THE DSS COMMAND PROMPT REFERRING: "Security Alert!".

     

    WITH THESE YOU CAN RUN THE SERVICE TUTORIAL 7 OVER DIFFERENT IPs JUST BY REPEATING STEPS 4) AND 5).

    THE ONLY THING TO ADD IS TO FORGET ABOUT TYPICAL MYTHS FOUND ON FORUMS. PLEASE DO NOT BELIEVE ON THE FOLLOWING, THIS WILL MAKE YOU LOOSE TIME BY WANDERING FOR THE REAL SOLUTION GIVEN ABOVE. THE FOLLOWING ARE FALSE SOLUTIONS:

    X - REMOTE PC SHOULD NOT HAVE A PASSWORD FOR THE USER ACCOUNT.

    THIS DOESN'T MATTER AT ALL...YOU CAN HAVE OR NOT A PASSWORD FOR THE USER ACCOUNT IN THE REMOTE PC, THIS IS JUST IRRELEVANT TO THE NETWORKING PROCESSES OF THE DSS.

    X - DSS COULD NOT REFER IN MANIFESTS DIRECT IPs, SO YOU NEED TO REFER THE PC-NAME ONLY AND LOOK-UP FOR THE FILE IN "C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS" OPEN IT WITH NOTEPAD AND EDIT TO DECLARE THE IP AND THE REMOTE PC NAME.

    I HAVE TRIED BOTH AND WORKED WITH NO TROUBLE ! =)

     

    Well, enjoy! =)

    I hope I didn't gave any bad instruction, I tried to detail it very well because I haven't found anything useful before. If any corrections don't hesitate to post, it really bothers when nothing is working because of indirect troubles besides of the MSRDS and tutorial documentation.

     

    • Marked As Answer by Chuy Cepeda Saturday, May 15, 2010 12:17 AM
    •  

All Replies

  • Monday, May 10, 2010 7:30 AM
    Owner
     
     

    Can you connect to http://10.0.0.100:40000 using a web browser on the second computer?

    Trevor

     

  • Saturday, May 15, 2010 12:13 AM
     
     Answered

    Hi Trevor, thanks for your response, I was starting to think just no one was interested hehe... Answering your question: Yes, i can.

     

    I had tried to find a solution in your PROMRDS book until I found: "A discussion about how to set up wireless networks, and advice on the wide range of scenarios, is outside the scope of this book." =)

    Here I will post my just found solution using Windows 7 in both PCs.

     

    HOW TO DISTRIBUTE SERVICE TUTORIAL 7 INTO DIFFERENT IPs USING WINDOWS7:

    1)  MAKE A CORRECT DEPLOY OF SERVICE TUTORIAL 4 IN THE CORRESPONDING REMOTE PC. THIS MIGHT REFER THE NEED OF INSTALLING AT LEAST THE "[...]Microsoft Robotics Dev Studio 2008 R2\redistributables\Microsoft CCR and DSS Runtime 2008 R2 Redistributable", IF THE REMOTE PC DOESN'T HAVE THE MSRDS INSTALLED, JUST BEFORE RUNNING THE .EXE GENERATED BY DSSDEPLOY. IF YOU JUST DON'T KNOW WHAT DEPLOYING MEANS, GO TO: http://msdn.microsoft.com/en-us/library/bb483012(v=MSDN.10).aspx

     

    2) ONCE THIS IS DONE, IT IS USEFUL TO DOUBLE-CHECK BY RUNNING THE SERVICE MANIFEST THROUGH THE DSS COMMAND PROMPT IN THE REMOTE PC. IF IT RUNS, YOU MAY WANT TO GO TO HTTP://LOCALHOST:<PORT> OR HTTP://<REMOTE-IP>:<PORT> IN AN INTERNET BROWSER TO CONFIRM (IN THE SAME REMOTE PC, OBVIOUSLY =P). IF YOU DON'T KNOW HOW TO RUN A SERVICE FROM COMMAND PROMPT, GO TO: http://msdn.microsoft.com/en-us/library/bb483055(v=MSDN.10).aspx

     

    3) IF EVERYTHING WORKED WELL, THEN MODIFICATIONS IN THE LOCAL PC (WHERE SERVICE TUTORIAL 7 IS GOING TO RUN) ARE REQUIRED JUST IN THE MANIFEST. 

    WHERE IT REFERS: <d:Service>http://localhost:40000/directory</d:Service>

    MAY BE CHANGED TO: <d:Service>http://<REMOTE IP>:40000/directory</d:Service>

       OR: <d:Service>http://<REMOTE PC-NAME>:40000/directory</d:Service>

     

    4) NOW, BEFORE STARTING THE SERVICE TUTORIAL 7 IN THE LOCAL PC, YOU NEED TO START THE NODE IN THE REMOTE PC.

    JUST TYPE IN A DSS COMMAND PROMPT : DSSHOST /P:40000

    ***DON'T USE /T:40001 !!!

     

    5) WITH DSS NODE OPEN IN REMOTE PC, START NODE  IN LOCAL BY RUNNING SERVICE TUTORIAL 7.

     

    IF IT DOESN'T WORK CORRECTLY, DON'T BE SURPRISED...MOST OF THE TIMES HAPPENS TO ALL OF US TO RECEIVE AN ANNOYING MESSAGE TELLING YOU "# FAILURE SENDINGE MESSAGE OUTBOUND....". EVEN THOUGH IT TELLS YOU THAT DETAILS ARE ON THE DEBUG SECTION IN THE NODE, INFORMATION DOESN'T HELP TOO MUCH...BUT IN BRIEF, WHAT IT MEANS IS THAT SOME PREVIOUS NETWORKING AND PERMISSIONS NEED TO BE DONE BEFORE THE CORRECT START-UP OF THE DISTRIBUTED SERVICES.

     

    STEPS FOR SETTING-UP THE NETWORK FOR DISTRIBUTING NODES OVER DIFFERENT IPs:

     

    A) BE SURE TO HAVE LOCAL AND REMOTE PCs IN THE SAME NETWORK, THIS MEANS, JUST THE LAST DIGITS OF EACH IP ARE DIFFERENT.

     

    B) REMOTE PC SHOULD HAVE ALL SET FIREWALL AND ITS SETTINGS TO OFF AND WORKING WITH ADMINISTRATOR PERMISSIONS FOR THE EASE OF RUNNING THE NODES. IF YOU ARE NOT SURE IF YOU HAVE THIS PERMISSIONS TAKE A LOOK INTO: http://www.howtogeek.com/howto/windows-vista/enable-the-hidden-administrator-account-on-windows-vista/

     

    C) NETWORK CONNECTION SHOULD BE AS "HOME NETWORK" (OR BE EQUIVALENT CHARACTERIZED) FOR BOTH PCs. HERE WINDOWS 7 CREATES A PASSWORD FOR THE DEFAULT WORKGROUP IN THE HOME NETWORK. SO ONCE THE FIRST PC IS INSIDE THE HOME NETWORK, IT PROMPTS WITH THE CREATED PASSWORD THAT IS GOING TO BE USED FOR THE SECOND PC TO ACCESS THE SAME WORKGROUP. ANY PC WITHOUT THAT PASSWORD COULD ACCESS THE WORKGROUP, SO YOU SHOULD ENSURE TO HAVE BOTH PCs IN THE SAME WORKGROUP.

     

    D) THE DSS NODE IN THE REMOTE PC SHOULD HAVE SECURITY AUTHENTICATION DISABLED. FOR DOING THIS, YOU NEED TO RUN AS IN STEP 4) REFERRED BEFORE, AND GO TO HTTP://LOCALHOST:40000/SECURITY/MANAGER/EDIT AND SET AUTHENTICATION TO DISABLED. THEN RESTART THE NODE AND CONFIRM WITH THE RED LETTERS IN THE DSS COMMAND PROMPT REFERRING: "Security Alert!".

     

    WITH THESE YOU CAN RUN THE SERVICE TUTORIAL 7 OVER DIFFERENT IPs JUST BY REPEATING STEPS 4) AND 5).

    THE ONLY THING TO ADD IS TO FORGET ABOUT TYPICAL MYTHS FOUND ON FORUMS. PLEASE DO NOT BELIEVE ON THE FOLLOWING, THIS WILL MAKE YOU LOOSE TIME BY WANDERING FOR THE REAL SOLUTION GIVEN ABOVE. THE FOLLOWING ARE FALSE SOLUTIONS:

    X - REMOTE PC SHOULD NOT HAVE A PASSWORD FOR THE USER ACCOUNT.

    THIS DOESN'T MATTER AT ALL...YOU CAN HAVE OR NOT A PASSWORD FOR THE USER ACCOUNT IN THE REMOTE PC, THIS IS JUST IRRELEVANT TO THE NETWORKING PROCESSES OF THE DSS.

    X - DSS COULD NOT REFER IN MANIFESTS DIRECT IPs, SO YOU NEED TO REFER THE PC-NAME ONLY AND LOOK-UP FOR THE FILE IN "C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS" OPEN IT WITH NOTEPAD AND EDIT TO DECLARE THE IP AND THE REMOTE PC NAME.

    I HAVE TRIED BOTH AND WORKED WITH NO TROUBLE ! =)

     

    Well, enjoy! =)

    I hope I didn't gave any bad instruction, I tried to detail it very well because I haven't found anything useful before. If any corrections don't hesitate to post, it really bothers when nothing is working because of indirect troubles besides of the MSRDS and tutorial documentation.

     

    • Marked As Answer by Chuy Cepeda Saturday, May 15, 2010 12:17 AM
    •  
  • Saturday, May 15, 2010 2:36 PM
     
     

    Correction in step C):

    [...] ANY PC WITHOUT THAT PASSWORD COULD NOT ACCESS THE WORKGROUP [...]

  • Saturday, July 09, 2011 3:58 AM
     
     

    This worked!

    Most excellent post!  Very helpful.

    I'm curious as to why/if a deployment package is required.  When the deployment package is run on the remote PC, is there some behind the scenes mickeysoft voodoo going on that perhaps registers the proxies/transforms or something?

    Thanks again!


    Dennis M. Knippel
  • Saturday, July 09, 2011 11:40 PM
     
     

    Hi Dennis,

    I'm glad you get it to work with my post. 

    On your curiosity, sincerely I don't know precisely what it does, but I'm sure it looks for specified paths and try to find the manifest for local node running so as to start remote communications. Actually, the remote pc calls for it to start in the specified IP and PORT but do not deploys it as you refer; it's like sending a command without the resources for doing it all. 

    Nice to see your post, I'm actually still working deeply with a multi.robot system for search and rescue based upon an architecture linked through these steps taking advantage in the service-oriented design, the dss and the ccr...

    You're very welcome.

    CC