To enable VisiBroker for .NET clients to communicate remotely, make sure that such applications do have the socket permission. The criteria for determining which particular application (or PTA) has socket permissions to connect to a given host or not is dependent on user requirements. Users must configure the Code Access Security policies of the machine that is executing the application such that the appropriate permissions are given to the application. There are a few choices provided by the Microsoft security framework. In addition, you may use custom code groups to fine tune the security policy.
SecurityPermission.Execute: This permission is not required by VisiBroker for .NET per-se but is required by any assembly that is partially trusted to load and execute
DnsPermission.Unrestricted: The ability to resolve DNS names. VisiBroker for .NET will not assert this permission. Otherwise, the code could use VisiBroker for .NET to probe for valid hosts. The PTA must have the ability to do DNS resolves.
SocketPermission: Code that uses VisiBroker for .NET is invariably calling into remote servers. So, the PTA requires permissions to open sockets to (or allow connections from, in the case of callbacks) the appropriate server host and port. VisiBroker for .NET will not assert permissions even back to the same host. This is because doing so, will allow arbitrary untrusted code to connect back to its host. Note here that socket permissions given to the application must allow the client to connect to the remote server that VisiBroker for .NET code is accessing. This may not be the same as the host that is serving the application assemblies.