One of the biggest difficulties in fixing production defects is replicating them in your development environment. This is the first step in confirming that you have a bug and the starting point for drilling down to find the problem. It can also be the most time-consuming part of the problem.
Large .NET projects tend to have infrequent releases because the release process is complex, and a lot of manual testing is needed to verify the new features and check for any regressions. It's not unusual to have just three or four releases a year and for developers to find themselves having to support multiple versions of an application in different parts of the release process.
In this scenario, you may have version 1.0 in production, version 1.1 in user acceptance testing (UAT), and version 1.2 in system testing. Bugs could be raised in any of these...