I have client/server apps that work as long as they are on the same machine. When they are on different machines, I get "The RPC server is not available". I see the message in the debug output window, I don't get a popup. The binding string is composed with
status = RpcStringBindingCompose(
szMyUUID, // UUID to bind to.
(unsigned char*)"ncacn_np", // Named Pipe
szServer, // Address
szEndpoint, // Endpoint (named pipe)
"Security=identification dynamic true", // Protocol dependent network options to use.
&szStringBinding); // String binding output.
The machines are XP and Windows 7. It doesn't matter which one has the client and server.
szEndpoint is "\\pipe\\pipename" and szServer is "\\\\servername". I can ping the server. I have tried it with and without the "Security..." option.
RPCSS is started. The RPC locator is not running but I have tried it with it running. From what I have read, it's not necessary anyway. The Registry Terminal Server value AllowRemoteRPC is a 1. I tried setting the Registry MSDTC value AllowOnlySecureRPCCalls to 0 as a test. Nothing works. RpcStringBindingCompose and RpcBindingFromStringBinding return successfully and the binding string looks correct. It's NdrGetBuffer, which I can't find any documentation for and have seen references where others couldn't either, in the MIDL compiler generated code that fails.
The firewall is off. I'm on an internal lan and settings are managed by Group Policy.
It seems like it must be a security or permissions issue. I have administrator privileges on both ends.
What am I missing?
Thanks for the help.