Невозможно подключить экземпляр SQL Server из Visual Studio 2008 версии 9.0 - PullRequest
1 голос
/ 03 мая 2010

Я получаю приведенную ниже ошибку от VS на 32-битном сервере XP Professional, хотя я установил Tools-> Options-> Database Tools-> Data Connections на «SIDEKICK», который является именем моего компьютера. Другими словами, SIDEKICK должен по умолчанию использовать полный SQLSERVER.

Другими словами, я хочу, чтобы VS использовал SQLSERVER вместо SQLSERVER EXPRESS. И я четко вижу свою базу данных как из VS в обозревателе серверов, так и в SSMS 2008. Кроме того, я могу просматривать таблицы этой базы данных в обозревателе серверов из VS. Я не получаю никаких ошибок сборки. И похоже, что все имена соответствуют в моем файле web.config.

Я разрабатываю свой веб-сайт в соответствии с руководством Microsoft, поэтому я не должен получать ошибку. Тем не менее, я получаю следующее исключение при запуске этого кода ниже:

CreateAccounts.aspx.cs file

protected void CreateAccountButton_Click(object sender, EventArgs e)
    {
        MembershipCreateStatus createStatus;
//This line below is where the exception occurs
        MembershipUser newUser = Membership.CreateUser(Username.Text, Password.Text, Email.Text, passwordQuestion, SecurityAnswer.Text, true, out createStatus);

А вот как выглядит исключение:

System.Web.HttpException was unhandled by user code
  Message="Unable to connect to SQL Server database."
  Source="System.Web"
  ErrorCode=-2147467259
  StackTrace:
       at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)
       at System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile(String connectionString)
       at System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation)
       at System.Web.Security.SqlMembershipProvider.CreateUser(String username, String password, String email, String passwordQuestion, String passwordAnswer, Boolean isApproved, Object providerUserKey, MembershipCreateStatus& status)
       at System.Web.Security.Membership.CreateUser(String username, String password, String email, String passwordQuestion, String passwordAnswer, Boolean isApproved, Object providerUserKey, MembershipCreateStatus& status)
       at System.Web.Security.Membership.CreateUser(String username, String password, String email, String passwordQuestion, String passwordAnswer, Boolean isApproved, MembershipCreateStatus& status)
       at Membership_CreatingUserAccounts.CreateAccountButton_Click(Object sender, EventArgs e) in c:\Documents and Settings\Admin\My Documents\Visual Studio 2008\WebSites\WebSite2\Membership\CreatingUserAccounts.aspx.cs:line 24
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: System.Web.HttpException
       Message="Unable to connect to SQL Server database."
       Source="System.Web"
       ErrorCode=-2147467259
       StackTrace:
            at System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
            at System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install)
            at System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString)
            at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)
       InnerException: System.Data.SqlClient.SqlException
            Message="The user instance login flag is not supported on this version of SQL Server. The connection will be closed."
            Source=".Net SqlClient Data Provider"
            ErrorCode=-2146232060
            Class=14
            LineNumber=65536
            Number=18493
            Procedure=""
            Server="."
            State=1
            StackTrace:
                 at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
                 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
                 at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
                 at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
                 at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
                 at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
                 at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
                 at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
                 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
                 at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
                 at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
                 at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
                 at System.Data.SqlClient.SqlConnection.Open()
                 at System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
            InnerException: 

Строка подключения web.config выглядит следующим образом:

<connectionStrings>
    <add name="SecurityTutorialsConnectionString"      
         connectionString="data source=.;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|SecurityTutorialsDatabase3.mdf;User Instance=true"      
         providerName="System.Data.SqlClient"/>

</connectionStrings>
<system.web>
    <membership defaultProvider="SecurityTutorialsSqlMembershipProvider">
        <providers>
            <add name="SecurityTutorialsSqlMembershipProvider"                
                 type="System.Web.Security.SqlMembershipProvider"                
                 connectionStringName="SecurityTutorialsConnectionString"                
                 enablePasswordRetrieval="false"                
                 enablePasswordReset="true"                
                 requiresQuestionAndAnswer="true"                
                 applicationName="SecurityTutorials"                
                 requiresUniqueEmail="true"                
                 passwordFormat="Hashed"                
                 maxInvalidPasswordAttempts="5"                
                 minRequiredPasswordLength="7"                
                 minRequiredNonalphanumericCharacters="1"                
                 passwordAttemptWindow="10"                
                 passwordStrengthRegularExpression=""/>
        </providers>
    </membership>

И я также отключил брандмауэры, так что я знаю, что это не причина.

Ответы [ 2 ]

1 голос
/ 03 мая 2010

Какие протоколы включены в «Конфигурация сети SQL Server» внутри «Диспетчер конфигурации SQL Server»?

0 голосов
/ 03 мая 2010

Если вы работаете с ASP.NET, то я бы посоветовал вам попробовать что-то вроде использования утилиты " aspnet_regsql.exe " ... которая, по сути, позволяет нам изменить соединение с базой данных по умолчанию (которое является SQL Express) к любой БД, которую мы хотим. Эту утилиту можно найти в каталоге " C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.more-digits " ....

Надеюсь, это поможет.

Jack

...