Sunday, March 11, 2012

An error occurred during the execution of the SQL file 'InstallCommon.sql'.

Hi,

I'm using Microsoft Visual Studio 2005 Beta 2.

I have created Personal Site using Project Template. 1st it started giving me error related to "Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed."

Then i made changes in web.config under configuration "User Instance=True" to "User Instance=False".

Now it started giving me error as follows:
An error occurred during the execution of the SQL file 'InstallCommon.sql'. The SQL error number is 262 and the SqlException message is: CREATE DATABASE permission denied in database 'master'.
Creating the C__INETPUB_WWWROOT_SITE_APP_DATA_ASPNETDB database...

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

SQLExpress database file auto-creation error:

The connection string specifies a local SQL Server Express instance using a database location within the applications App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist. The following configuration requirements are necessary to successfully check for existence of the application services database and automatically create the application services database:

    If the applications App_Data directory does not already exist, the web server account must have read and write access to the applications directory. This is necessary because the web server account will automatically create the App_Data directory if it does not already exist. If the applications App_Data directory already exists, the web server account only requires read access to the applications App_Data directory. This is necessary because the web server account will attempt to verify that the SQL Server Express database already exists within the applications App_Data directory. Note that revoking read access on the App_Data directory from the web server account will prevent the provider from correctly determining if the SQL Server Express database already exists. This will cause an error when SQL Server Express attempts to create a duplicate of an already existing database. SQL Server Express must be installed on the machine. If the application services database does not already exist, the SQL Server Express service account must have read and write access to the applications App_Data directory. This is necessary because the SQL Server Express service account will create the application services database. The web server account used to connect to SQL Server Express must have rights to create a new database.
      When using the local web server(Cassini) installed with Visual Studio, the logged-in user needs the dbcreator privilege in the appropriate SQL Server Express instance. When using IIS, the process account needs the dbcreator privilege in the appropriate SQL Server Express instance. Only consider granting a process account dbcreator privilege on secure development machines. Do not grant the dbcreator privilege on production machines without fully investigating and understanding the security ramifications of running a production web server with the dbcreator privilege. The process account requiring dbcreator privilege varies depending on operating system platform and ASP.NET configuration settings: For IIS5, and IIS6 running in IIS5 isolation mode, the default web server account is the local ASPNET machine account. For IIS6 native mode, the default web server account is NETWORK SERVICE. If application impersonation is enabled, then the application impersonation account requires the dbcreator privilege. If an explicit account was specified for the web server process (either in the <processModel> element for IIS5 and IIS5 isolation mode, or the application pool account on IIS6), then the explicit account requires the dbcreator privilege.

Stack Trace:

[SqlExecutionException: An error occurred during the execution of the SQL file 'InstallCommon.sql'. The SQL error number is 262 and the SqlException message is: CREATE DATABASE permission denied in database 'master'. Creating the C__INETPUB_WWWROOT_SITE_APP_DATA_ASPNETDB database...] System.Web.Management.SqlServices.ExecuteFile(String file, String server, String database, String dbFileName, SqlConnection connection, Boolean sessionState, SessionStateType sessionStatetype) +783 System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +721 System.Web.DataAccess.SqlConnectionHelper.EnsureValidMdfFile(String fullFileName, String dataDir, String connectionString) +365

The new problem is a result of turning off User Instance. The ASP user doesn't have the permissions to create databases and do the other things specified in the message. User Instance set to true will give your ASP user administration permissions. Your choices are to grant all the approprite database priviledges as specified in the error message to the asp user or to get user instance working. User instance probably didn't work because the asp user didn't have Windows read write permissions to the directory where the database files are located.

No comments:

Post a Comment