I have seen all kinds of issues while moving sites, webapps from one environment to other. If your restoring a webapp on the same farm then you might get away with minimum trouble shooting but if its a different farm then you are at the mercy of google.
You can start with below trouble shooting steps. I am assuming that you are restoring a webapp from Farm A to Farm B running with different service accounts.
- Backup the DB on Farm A and Restore it to SQL server of Farm B.
- Add all the service accounts from Farm A to Farm B and assign these accounts same permissions like that of Farm A, including local server admin permissions. DO NOT CHANGE ANY EXISTING SERVICE ACCOUNTS ON FARM B.
- Create a new webapp
- Dismount the DB on of this new webapp using Powershell Dismount-SPContentDatabase.
- Mount the restored DB using powershell Mount-SPContentDatabase “MyDatabase” -DatabaseServer “MyServer” -WebApplication http://sitename
Now You should be able to open the webapp on FarmB.
You can also create the new webapp on Farm B using the restored DB instead of new DB but I have seen issues some times with this process. So I would like to create new site and then mount the existing DB.
Permissions of service accounts is the KEY here. As the DB was built on a different farm with a different account it will still look for that account during the initialization. One way to move all the service accounts which are on the sql server is below
On SSMS click View->object explorer details. Now click on security->logins which will display all the logins on object explorer details window. Select all the logins here->right click and script to new query window. You can run this query on Farm B SQL server to duplicate the accounts. Again do not forget to verify any local admin permissions if has on Farm A and replicate it on Farm B.