Thursday, May 06, 2010 9:26 PM
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.
Monday, May 10, 2010 7:30 AMOwner
Can you connect to http://10.0.0.100:40000 using a web browser on the second computer?
Saturday, May 15, 2010 12:13 AM
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
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?
Dennis M. Knippel
Saturday, July 09, 2011 11:40 PM
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.
Thursday, June 28, 2012 11:33 AM
but when i run ServiceTutorial7 at local machine in remote desktop i get message:*** Security Alert!
Starting node without user authentication.
The node currently has no network security features enabled.
* Service started [06/28/2012 16:27:43][http://xxx:40000/directory]
* Service started [06/28/2012 16:27:43][http://xxx:40000/constructor]
* Service started [06/28/2012 16:27:43][http://xxx:40000/console/output]
Rebuilding contract directory cache. This will take a few moments ...
Contract directory cache refresh complete
** Error creating service. Service type:http://schemas.microsoft.com/2006/06/servicetutorial4.user.html [06/28/2012 16:28:10][http://xxx:40000/constructor]
but at remote host through command:
DssHost.exe /p:40000 /m:"c:\Documents and Settings\X\Рабочий стол\vas\dep\samples\Config\ServiceTutorial4.manifest.xml"
Service 4 runs correctly.
Where i mistaken?
Thursday, June 28, 2012 4:11 PM
Hi Iagsav !
Check out the manifest's name for ST4 that are written at ST7, it looks like you're deploying an instance of <servicetutorial4.user.manifest.xml> instead of the one that runs correctly which is named <servicetutorial4.manifest.xml> without the .user. ....
Hope this helps and thanks for the cheers ;D
Thursday, June 28, 2012 7:30 PM
Thank you for you answer =)
When i run two nodes at single PC - all is good work.
But at different PC's i still get described error.
I kill firewall, and write in "hosts" file:192.168.56.2 xxx
I think that i used right manifests:
<?xml version="1.0" ?> - <!-- // This file is part of Microsoft Robotics Developer Studio Code Samples. // // Copyright (C) Microsoft Corporation. All rights reserved. // // $File: ServiceTutorial7.manifest.xml $ $Revision: 1 $ --> - <Manifest xmlns="http://schemas.microsoft.com/xw/2004/10/manifest.html" xmlns:d="http://schemas.microsoft.com/xw/2004/10/dssp.html" xmlns:s="http://schemas.microsoft.com/2006/06/servicetutorial7.user.html"> - <CreateServiceList> - <ServiceRecordType> <d:Contract>http://schemas.microsoft.com/2006/06/servicetutorial7.user.html</d:Contract> - <d:PartnerList> - <d:Partner> <d:Service>http://xxx:40000/directory</d:Service> <d:Name>s:Remote</d:Name> </d:Partner> - <d:Partner> <d:Name>s:Local</d:Name> </d:Partner> </d:PartnerList> </ServiceRecordType> - <ServiceRecordType> <d:Contract>http://schemas.microsoft.com/2006/06/servicetutorial4.user.html</d:Contract> <d:Service>http://localhost/localclock</d:Service> - <d:PartnerList> - <d:Partner> <d:Service>ServiceTutorial7.LocalClock.config.xml</d:Service> <d:Name>d:StateService</d:Name> </d:Partner> </d:PartnerList> <Name>s:Local</Name> </ServiceRecordType> </CreateServiceList> </Manifest>
<?xml version="1.0" ?>
- <!-- // This file is part of Microsoft Robotics Developer Studio Code Samples. // // Copyright (C) Microsoft Corporation. All rights reserved. // // $File: ServiceTutorial7.manifest.xml $ $Revision: 1 $ --> - <Manifest xmlns="http://schemas.microsoft.com/xw/2004/10/manifest.html" xmlns:d="http://schemas.microsoft.com/xw/2004/10/dssp.html" xmlns:s="http://schemas.microsoft.com/2006/06/servicetutorial7.html"> - <CreateServiceList> - <ServiceRecordType> <d:Contract>http://schemas.microsoft.com/2006/06/servicetutorial7.html</d:Contract> - <d:PartnerList> - <d:Partner> <d:Service>http://xxx:40000/directory</d:Service> <d:Name>s:Remote</d:Name> </d:Partner> - <d:Partner> <d:Name>s:Local</d:Name> </d:Partner> </d:PartnerList> </ServiceRecordType> - <ServiceRecordType> <d:Contract>http://schemas.microsoft.com/2006/06/servicetutorial4.html</d:Contract> <d:Service>http://localhost/localclock</d:Service> - <d:PartnerList> - <d:Partner> <d:Service>ServiceTutorial7.LocalClock.config.xml</d:Service> <d:Name>d:StateService</d:Name> </d:Partner> </d:PartnerList> <Name>s:Local</Name> </ServiceRecordType> </CreateServiceList> </Manifest>
What do you think?
What command dou you use to build deploy package?
- Edited by iagsav Thursday, June 28, 2012 8:08 PM
Saturday, June 30, 2012 11:59 AMIts very strange. But i run two DSS nodes at two different virtual PC's (VirtualBox) and service 4 was created. So, Its ok.
Saturday, June 30, 2012 7:06 PM
It sounds now like a matter of the antivirus.... try disabling every antivirus running.
Hope this helps.
- Edited by Chuy Cepeda Saturday, June 30, 2012 7:07 PM
Sunday, July 01, 2012 4:02 PM
No, i kill my antivirus and i still can not create service.
host pc - win 7
guest -win xp
Monday, July 02, 2012 4:03 AM
I think I got it !
Ensure you have:
- Both computers on the same workgroup ( WinXP is need of installing LLTD http://www.microsoft.com/en-us/download/details.aspx?id=5577).
- Sharing enabled in both computers.
- Antivirus Network Traffic Disabled (or the whole antivirus for simplicity)
- Authentication (security) disabled in both computers for MSRDS Services (Make sure both computers show the "security alert" when you run a service).
This worked for me when I was in the need of combining Win7 with WinXP, don't ask how I solved, this was a complete head ache... =D
Monday, July 02, 2012 8:12 AM
Start failed =(
Thank you, for you responses =)
Wednesday, August 29, 2012 9:25 PM
I have been trying for two months to get Tutorial 7 to work either in VPL or C#. I have now focused my attention to C# entirely. I figure if I can get the DSS to get on board by manipulating the addresses then it would work. But I am getting an Incompatiple services error. Has anyone been able to make the thing work with a Kinect? Did anyone at Microsoft try the tutorial(s) with the updates? I ask because the tutorial was written for the iRobot. I'm willing to pay for the answer so that I can get on with my life! lol Oh....forgot......what I am using might be important:
Eddie [Mark] Robot
VS 2010 (Full Version]
1.5, and the 1.5 update.
PC is a HP Laptop, 8 gig, 1tb hd
Kinect for windows. No XBox
It is just the drive section that is failing. The Blob and speech services seem to come on line without any glitches. Of course I have no way of confirming operation because the platform won't come on line. It compiles in C# without any errors.
Friday, August 31, 2012 7:32 PMModeratorAre you logged into both computers with the same account name and that have the same password? Behind the scenes DSS is using NTLM automatic authentication and requires both nodes to have the same security context (unless you start to get fancy). It's generally recommended that you have both computers in the same domain logged on to the same domain account, but I believe I've run it across two computers not domain joined by using a shared username/password.
Friday, August 31, 2012 7:35 PMModerator
Pretty certain we tested an essentially duplicate environment.