Summary: Frequently Asked Questions and Issues related to Microsoft Robotics Studio security configuration etc.

Running a DSS Node using a Non-Administrative Account


Note: This information is also part of the Microsoft Robotics Studio information available as part of the installation.

In order to run a DSS node using a non-administrative account, you must first reserve an HTTP namespace with the kernel level HTTP listener (http.sys) to be able to listen for requests. Administrative users do not have to reserve a namespace.

You can reserve an HTTP namespace using the "HttpReserve" utility. The following example shows a namespace reservation enabling a local, non-administrative account called MSRS_TEST to run a DSS node on port 50000:

		 httpreserve /port:50000 /user:msrs_test
	

Namespace reservations are persisted and only necessary to do once for a given port and user or group. They can be removed by using the "/remove" option like this:

		 httpreserve /port:50000 /remove+
	

Authentication fails


When connecting to a Dss node using a browser you should be automatically authenticated to the Node. However, this does not work in all settings.

1) Change browser settings


These instructions are for IE 6 and 7, other browsers will vary

*On the "Tools" Menu, select "Internet Options"
*On the "Internet Options" dialog, select the "Security" Tab
*On the "Security" property sheet, click on the "Local Intranet" zone icon (the globe with a monitor infront of it)
*Still on the "Security" property sheet, click the "Custom level..." button.
*In the "Security Settings - Local Intranet Zone" dialog scroll to the bottom of the "Settings" listbox.
*Change the "User Authentication -> Logon" setting to either of the "Automatic Logon" selections.
*Select "OK" to close the "Security Settings - Local Intranet Zone" dialog.
*In the "Security" tab of the "Internet Options" dialog click on the button "Sites..."
*In the "Local Intranet" dialog Ensure that all three options are selected.
*In the "Local Intranet" dialog click on the "Advanced..." button.
*Add the website address "http://localhost" to the zone by entering "http://localhost" in the "Add this Web site to the zone:" text box and then clicking on the "Add" button.
*Ensure that the "Require server verification (https: ) for all sites in this zone" check box is not checked.
*Select "OK" three times to close the dialogs.
*Close all open browser windows.

This should fix the problem.

If this doesn't work you can try either 2a or 2b below. Note that either of these leaves an executing node enitirly unsecured on your machine. If other machines have network access to a running node then they can send any message to any service.

2a) Turn off security for the Dss Node


You can turn all security off for the node by editing the file bin\dsshost.exe.config

Within the appSettings element there is a key called security

		 <appSettings>
		     .
		     <add key="Security" value="..\store\SecuritySettings.xml"/>
		     .
		 </appSettings>
	

Note: Commenting this out will make the node start without security by default. To re-enable security either add this key back to the config file or start the node with the /security option

2b) Disable authentication for the Node


Alternatively you create a security settings file in the store directory called SecuritySettings.xml with the contents...

		 <?xml version="1.0"?>
		 [<SecuritySettings] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		                   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
		                   xmlns="http://schemas.microsoft.com/robotics/2006/10/security.html">
		   [<AuthenticationRequired>false</AuthenticationRequired>]
		   [<OnlySignedAssemblies>false</OnlySignedAssemblies>]
		   <Users />
		 [</SecuritySettings>]
	

this will turn the authentication requirement off.