2010-01-29 20 views
76

Estoy usando WinHost.com para alojar mi sitio. La base de datos SQL/sistema de membresía funciona perfectamente en mi computadora local, pero cuando se carga en el servidor no funciona. He seguido todos los pasos correctamente. Y me he puesto en contacto con el servicio de asistencia técnica, pero han pasado más de 2 semanas sin respuesta.No se pudo encontrar el procedimiento almacenado 'dbo.aspnet_CheckSchemaVersion'

Sigo recibiendo este error cuando intento iniciar sesión o registrar un nuevo usuario en mi página de membresía en mi sitio.

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 

Puede alguien decirme por qué este error ha ocurrido (obviamente no se puede encontrar algo ...), y cómo puedo solucionarlo?

Gracias a todos

Bael

+0

¿es posible que usted necesita para calificar aún más el nombre del procedimiento almacenado o el propietario no se DBO – David

+0

lo versio n de SQL Server estás usando? –

Respuesta

149

Did usted ejecuta aspnet_regsql.exe contra el servidor sql de WinHost.com?

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

Usted tendrá que asegurarse de que se ejecuta este modo que las tablas y los objetos se crean en el servidor SQL de WinHost.com.

+15

Si ha integrado la seguridad, use las marcas "-E" en lugar de "-U" (nombre de usuario) y "-P" (contraseña). – Sung

+0

GRACIAS !!! Solo para agregar, puede ejecutar esto sin args de línea de comando para obtener una GUI, no exactamente como haxxor, pero hace el trabajo :) – JMK

+0

@gabriel ¿Cómo ejecutar aspnet_regsql.exe? –

3

Comprobar el esquema del procedimiento almacenado pertenece en su host - podría ser que no está en el esquema de "dbo".

p. Ej. si está dentro de SomeOtherSchema, su llamada tendría que ser "SomeOtherSchema.aspnet_CheckSchemaVersion"

+1

Gracias AdaTheDev. ¿Puedes decirme cómo cambiaría la llamada a otra cosa? Como, ¿en qué parte del código sería ... web.config? –

1

En resumen usted debe volver a compilar el archivo DLL proveedor de Red PEA utilizando el nombre de usuario de SQL que se le asignó a su alojamiento.

  • Descargar el http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
  • Sustituir desde el código fuente de todos los referencias a DBO con su nombre de usuario de base de datos de alojamiento
  • de compilación (que necesita Visual Studio) y lugar el ProviderToolkitSampleProviders.dll en la carpeta Bin
  • En su web.config, reemplace el atributo "type" de cada línea con "Micr osoft.Samples., ProviderToolkitSampleProviders”
  • Reemplazar en que el servidor SQL local de todas las referencias DBO con su nombre de usuario de base de datos de alojamiento
  • exportación la secuencia de comandos SQL de creación de objetos y ejecutarlos en la base de datos remota
  • Copiar los registros de su local, aspnet_SchemaVersions tabla de SQL a la base de datos remota

Otra opción, pheraps más fácil de tratar, es reemplazar las referencias dbo en la base de datos de SQL Server local con su nombre de usuario de base de datos de alojamiento, a continuación, cargar y adjuntar el archivo MDF.

creo que sirve

Thomas

+0

¿eh? ¿De qué color es el cielo en tu mundo? lolzalot. Dude solo necesita aprovisionar su base de datos o arreglar su cadena de conexión. Ninguna respuesta hubiera sido mejor que esto. –

+1

Ooops cuando escribió "He seguido todos los pasos correctamente" Pensé que ya había intentado aspnet_regsql.exe y doble la cadena de conexión. Un proveedor de hosting que conozco no permite aspnet_regsql.exe, así que el mío es una solución de trabajo para ese caso. – Thomas

10

que he visto esto antes. La base de datos que está utilizando no tiene los elementos de base de datos necesarios para la pertenencia, la función de gestión y las características del perfil.Por lo que tiene un par de opciones:

  1. de copia a través de las tablas, procedimientos almacenados & vistas desde su local de SQL Server Management Studio de SQL o una aplicación similar
  2. Uso del aspnet_regsql.exe tool para instalar los scripts de nuevo de acuerdo con las instrucciones de este post(no creo que se puede utilizar la herramienta contra una base de datos remota si está bloqueado hacia abajo. por lo que usted tiene que exportar las secuencias de comandos y ejecutar de forma manual)
26

pronta Abra Visual Studio comando desde la carpeta de Visual Studio Tools desde el menú Inicio y escriba aspnet_regsql

y siga el asistente para registrar la base de datos de proveedores de pertenencia asp.net y el papel.

+2

Hola amigo, ejecutando aspnet_regsql Pude solucionar mi problema y ahora la pregunta es ¿qué es esto --aspnet_regsql - Do? –

5

Tengo el mismo problema: copio/pego connectionString de SQL Object manager en Visual Studio y me olvido de escribir Initial Catalog=YourDatabaseName.

+0

Tuve 'Initial Catalog = master' en lugar de' Initial Catalog = YourDatabaseName' –

+0

¡Gracias! Eso lo solucionó para mí. –

3

Tuve exactamente el mismo error cuando habilité <roleManager> creyendo que estaba habilitando ASP.NET Identity 2. ¡No son lo mismo! El <roleManager> habilitó una versión anterior de la administración de identidades que utiliza una estructura de tabla diferente a ASP.NET Identity 2 (que no necesita "habilitar", por cierto, está ahí).

Si está utilizando intencionadamente el viejo papel-manager y sigue recibiendo el error que podría estar buscando en el valor predeterminado localdb en lugar de su base de datos, en cuyo caso se puede modificar <roleManager> apunte a cualquier cadena de conexión que desea:

<roleManager 
     enabled="true" 
     cacheRolesInCookie="true" 
     defaultProvider="OurSqlRoleProvider" 
    > 
     <providers> 
      <add 
      connectionStringName="DefaultConnection" 
      applicationName="/" 
      name="OurSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider" /> 
     </providers> 

    </roleManager> 

Si es después de usar ASP.NET identidad 2, aquí está un artículo sobre ella:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/

Cuestiones relacionadas