The exception message implies that the login stream currently is not opened. It seems that your login request with different IP address has been rejected so the stream was closed.
Please verify the Login response received in your application. For the "RFA .Net Tutorials / step 8", the Login response will be logged to console. Below is the example of the Login Denied response.
<- Received MMT_LOGIN - Login Denied streamState : Closed dataState : Suspect statusCode : NotAuthorized statusText : A21: A required argument was NULL
You can post the Login response and the value passed in the POSITION field here.