After looking into this it appears that this is a difference between the .NET frameworks. Previously the XmlReader did not implement the IDisposable interface but in the 2.0 framework they do. So when we dispose of the reader which we have always done previously a dispose was not being done because it was not implemented. If the 1.1 .NET framework was updated as well you would see the same exception as you do in the 2.0 framework. I would recommend not using the fs.position = 0 code and calling just the close should work fine. Please let me know if any of this is still confusing.
Recommended change:
FileStream layoutStream = new FileStream(@"test.rpx", FileMode.Open); AR.ActiveReport theReport= new AR.ActiveReport(); layoutStream.Position = 0; theReport.LoadLayout(layoutStream); layoutStream.Close();