In most cases this is caused by the Oracle Listener working as portmapper only. That is, the connect port (1521 by default) is not used for data, only for getting information about the dynamically negotiated ports to contact Oracle DBMS. You can switch that behaviour off, but that requires to modify the target listener config, and a restart of the DBMS instance.
If that is an option, you need to set a registry value:
HKLM\Software\Oracle\{KEY_«OraHomeName»|«OraHome»}\Use_Shared_Socket=REG_SZ:TRUE