2010-01-29 3 views
76

WinHost.com을 사용하여 내 사이트를 호스팅하고 있습니다. SQL 데이터베이스/회원 시스템은 로컬 컴퓨터에서 완벽하게 작동하지만 서버에 업로드하면 작동하지 않습니다. 나는 모든 단계를 올바르게 따라 갔다. 그리고 내 서비스에 대한 지원을 요청했지만 2 주 이상 응답이 없었습니다.'dbo.aspnet_CheckSchemaVersion'저장 프로 시저를 찾을 수 없습니다.

내 사이트의 회원 페이지에 로그인하거나 새 사용자를 등록하려고 할 때이 오류가 계속 발생합니다.

Server Error in '/' Application. 
-------------------------------------------------------------------------------- 

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 
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. 

Exception Details: System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[SqlException (0x80131904): Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.] 
    System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1953274 
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849707 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 
    System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +204 
    System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954 
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162 
    System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +175 
    System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137 
    System.Web.Util.SecUtility.CheckSchemaVersion(ProviderBase provider, SqlConnection connection, String[] features, String version, Int32& schemaVersionCheck) +378 
    System.Web.Security.SqlMembershipProvider.CheckSchemaVersion(SqlConnection connection) +89 
    System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) +815 
    System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +105 
    System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved) +42 
    System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) +78 
    System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +60 
    System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +119 
    System.Web.UI.WebControls.Login.AttemptLogin() +115 
    System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +101 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 
    System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166 
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 




-------------------------------------------------------------------------------- 
Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4016 

누가이 오류가 발생했는지 말해 줄 수 있습니까? (분명히 찾을 수 없습니다 ...), 어떻게 고칠 수 있습니까?

는 당신에게 모든

Bael

+0

당신이 더 저장된 프로 시저의 이름을 규정 할 필요가 그것을 가능 또는 소유자는 – David

+0

을으로 dbo하지 무엇 Versio n 개의 SQL Server를 사용하고 있습니까? –

답변

149

의 지시에 따라나요 너는을 달린다. WinHost.com의 SQL 서버에 대한?

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName 

테이블과 개체가 WinHost.com의 SQL 서버에 만들어 지도록이 프로그램을 실행해야합니다.

+15

보안이 통합 된 경우 "-U"(사용자 이름) 및 "-P"(암호) 플래그 대신 "-E"플래그를 사용하십시오. – Sung

+0

THANKYOU !!! 추가하기 만하면 명령 줄 인수없이 GUI를 실행할 수 있습니다. haxxor가 아니라 일을합니다 :) – JMK

+0

@gabriel aspnet_regsql.exe를 실행하는 방법은 무엇입니까? –

3

확인 저장 프로 시저가 호스트에 속해있는 스키마를 감사 - 그것은이 "DBO"스키마에없는 것이 될 수있다.

SomeOtherSchema 내에있는 경우 호출이 "SomeOtherSchema.aspnet_CheckSchemaVersion"이어야합니다.

+1

감사합니다 AdaTheDev. 전화를 다른 것으로 바꾸는 방법을 알려주시겠습니까? 코드에서 abouts는 ... web.config일까요? –

1

즉, 호스팅에서 할당 한 sql 사용자 이름을 사용하여 aspnet provider dll을 다시 컴파일해야합니다.

  • http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
  • 소스 코드에서이 데이터베이스 사용자 이름
  • 컴파일 (당신은 비주얼 스튜디오 필요) 및 장소 을에서 ProviderToolkitSampleProviders.dll에게 접대으로 dbo하는 모든 참조를 교체 다운로드 Bin 폴더
  • web.config에서 "type" "Micr로 모든 행의 속성을 바꿉니다. osoft.Samples., ProviderToolkitSampleProviders "
  • 은 해당 지역에서 레코드를 호스팅 데이터베이스 사용자 이름
  • 수출은 SQL 오브젝트 작성 스크립트를 사용하면 로컬 SQL 서버의 모든 DBO 참조를 교체하고 원격 데이터베이스
  • 복사에 실행할

또 다른 옵션은, 시도 할 간단 pheraps 원격 데이터베이스에 대한 SQL 테이블 aspnet_SchemaVersions는 업로드하고 MDF 파일을 첨부 한 후, 호스팅 데이터베이스 사용자 이름으로 로컬 SQL Server 데이터베이스에 DBO 참조를 대체하는 것입니다.

는 내가 전에 본 적이 토마스

+0

? 당신의 세계에서 어떤 색깔의 하늘입니까? lolzalot. Dude는 데이터베이스를 프로비저닝하거나 연결 문자열을 수정해야합니다. 이보다 더 좋은 대답은 없었습니다. –

+1

Ooops 그가 "모든 단계를 올바르게 따라했습니다"라고 쓰자 그는 aspnet_regsql.exe를 이미 시도하고 연결 문자열을 두 번 확인했습니다. 내가 아는 호스팅 제공 업체는 aspnet_regsql.exe를 허용하지 않으므로 내 경우에는이 솔루션을 사용할 수 있습니다. – Thomas

10

을 도움이되기를 바랍니다. 사용중인 데이터베이스에 멤버십, 역할 관리 및 프로필 기능에 필요한 데이터베이스 요소가 없습니다.테이블에서

  1. 복사, 저장 프로 시저 새롭게에서 스크립트를 설치하는 SQL 관리 Studio 또는 유사한 응용 프로그램
  2. 사용 aspnet_regsql.exe tool를 사용하여 로컬 SQL 서버에서 & 인원 : 그래서 당신은 몇 가지 옵션을 가지고있다 이 post(나는 그것을 아래로 잠겨있는 경우 원격 데이터베이스에 대해 도구를 사용할 수 있다고 생각하지 않습니다. 당신이 스크립트를 내보낼 수 있고 수동으로 실행하는 것입니다 그래서)
26

열기 비주얼 스튜디오 명령 시작 메뉴 에서 Visual Studio 도구 폴더에서 신속하고 aspnet_regsql

입력하고 asp.net 회원 및 역할 공급자에 대한 데이터베이스를 등록 마법사를 따릅니다.

+2

안녕 친구, 실행 aspnet_regsql 내 문제를 해결할 수 있었고 지금 질문이 무엇입니까 - asp.net_regsql - 마? –

5

Visual Studio에서 SQL Object manager의 connectionString을 복사/붙여 넣기하는 것과 동일한 문제가 있습니다. Initial Catalog=YourDatabaseName을 입력하는 것을 잊지 마십시오.

+0

'Initial Catalog = YourDatabaseName' 대신'Initial Catalog = master'가 있습니다 –

+0

고마워요! 그것을 위해 그것을 고정. –

3

<roleManager>이 ASP.NET ID 2를 사용한다고 생각하면 똑같은 오류가 발생했습니다. 그들은 동일하지 않습니다!<roleManager>은 ASP.NET ID 2와 다른 테이블 구조를 사용하는 이전 버전의 ID 관리를 사용할 수있게되었습니다. (이 방법은 "활성화"할 필요가 없습니다. 당신이 의도적으로 기존의 역할 관리자를 사용하고 아직도 당신이 원하는 연결 문자열을 가리 키도록 당신이 <roleManager>을 수정할 수있는 경우 기본 대신 데이터베이스의 localdb보고 할 수있는 오류를 얻는 경우

:

당신이 ASP.NET 신원이 사용 후있는 경우
<roleManager 
     enabled="true" 
     cacheRolesInCookie="true" 
     defaultProvider="OurSqlRoleProvider" 
    > 
     <providers> 
      <add 
      connectionStringName="DefaultConnection" 
      applicationName="/" 
      name="OurSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider" /> 
     </providers> 

    </roleManager> 

는 여기에 대한 기사입니다 :
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/

관련 문제