2016-06-07 11 views
3

Ich habe eine gespeicherte proc auf einem Server. Derselbe Server wird sowohl in der lokalen Entwicklung als auch auf dem entfernten Dev-Server verwendet, den ich habe.Stored Procedure gefunden auf localhost, aber nicht gefunden, wenn veröffentlicht

Die Website funktioniert gut, wenn ich es in Debug auf meinem lokalen Computer ausführen. Wenn ich es veröffentliche, gibt es:

The stored procedure 'vts_spUserGetUserIdFromUserName' doesn't exist. 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.InvalidOperationException: The stored procedure 'vts_spUserGetUserIdFromUserName' doesn't exist.

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:

[InvalidOperationException: The stored procedure 'vts_spUserGetUserIdFromUserName' doesn't exist.]
System.Data.SqlClient.SqlCommand.DeriveParameters() +3962
System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command) +127
Microsoft.Practices.EnterpriseLibrary.Data.Database.DiscoverParameters(DbCommand command) +154
Microsoft.Practices.EnterpriseLibrary.Data.ParameterCache.SetParameters(DbCommand command, Database database) +114
Microsoft.Practices.EnterpriseLibrary.Data.Database.AssignParameters(DbCommand command, Object[] parameterValues) +42
Microsoft.Practices.EnterpriseLibrary.Data.Database.GetStoredProcCommand(String storedProcedureName, Object[] parameterValues) +70
Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteScalar(String storedProcedureName, Object[] parameterValues) +38
Votations.NSurvey.SQLServerDAL.User.GetUserByIdFromUserName(String userName) +226
Votations.NSurvey.WebAdmin.NSurveyAdmin.UserControls.LoginBox.ValidateCredentialsButton_Click(Object sender, EventArgs e) +168
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11761917
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +150 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6016

Die gespeicherte Proc ist definitiv da. Ich habe KDiff die zwei web.config Dateien und da sind keine Unterschiede. Das einzige Problem, das mir einfällt, ist, dass es sich auf dem Server in einer Web Application als Unteranwendung einer anderen Root-Site befindet. Könnte das der Grund sein? Es erbt Datenbankverbindungszeichenfolgen von der anderen Anwendung? Wenn ja, kann ich das irgendwie aufhalten?

+0

Ich habe versucht um die Verbindungszeichenfolgen in der übergeordneten App. Aber obwohl es sie von den geerbten Verbindungszeichenfolgen in IIS entfernte, behob es das Problem nicht. –

Antwort

0

Überprüfen Sie das Schema, unter dem die Stored Procedure erstellt wird.

Ich könnte möglich sein, dass die Stored Procedure unter Ihrem Konto erstellt wird, das heißt, wenn Sie es auf dem lokalen Rechner ausführen, ist es in der Lage, den SP zu finden und nicht, wenn es unter einem anderen Konto auf Server läuft.

+0

Das hat es getan. Der Netzwerkdienst hatte keine Berechtigung, den SP zu verwenden, sodass er nicht angezeigt wurde. Etwas irreführende Fehlermeldung, die besagt, dass sie nicht existiert! –