Agree with @Andrew, knowing the exception would really help.
Just to make sure, you've tried settingssetting the customErrors element in your web.config to Off right? This way the exception details will show everywhere instead of a HTTP 500.
Try changing the AppPool that your site uses is set to .NET 4 Integrated
You could also try running aspnet_regiis.exe to re-register .NET with IIS.