在localhost上找到存储过程但在发布时找不到

时间:2016-06-07 13:58:35

标签: asp.net sql-server-2008

我在服务器上有一个存储过程。本地开发和我拥有的远程开发服务器都使用相同的服务器。

当我在本地计算机上进行调试时,该站点运行正常。当我发布它时返回:

  

存储过程' vts_spUserGetUserIdFromUserName'不存在。   描述:执行期间发生未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.InvalidOperationException:存储的   程序' vts_spUserGetUserIdFromUserName'不存在。

     

来源错误:

     

执行期间生成了未处理的异常   当前的网络请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

堆栈追踪:

     

[InvalidOperationException:存储过程   ' vts_spUserGetUserIdFromUserName'不存在。]
  System.Data.SqlClient.SqlCommand.DeriveParameters()+3962
  System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand的   命令)+127
  Microsoft.Practices.EnterpriseLibrary.Data.Database.DiscoverParameters(的DbCommand   命令)+154
  Microsoft.Practices.EnterpriseLibrary.Data.ParameterCache.SetParameters(的DbCommand   命令,数据库数据库)+114
  Microsoft.Practices.EnterpriseLibrary.Data.Database.AssignParameters(的DbCommand   command,Object [] parameterValues)+42
  Microsoft.Practices.EnterpriseLibrary.Data.Database.GetStoredProcCommand(字符串   storedProcedureName,Object [] parameterValues)+70
  Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteScalar(字符串   storedProcedureName,Object [] parameterValues)+38
  Votations.NSurvey.SQLServerDAL.User.GetUserByIdFromUserName(字符串   userName)+226
  Votations.NSurvey.WebAdmin.NSurveyAdmin.UserControls.LoginBox.ValidateCredentialsButton_Click(对象   发件人,EventArgs e)+168
  System.Web.UI.WebControls.Button.OnClick(EventArgs e)+11761917
  System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串   eventArgument)+150 System.Web.UI.Page.ProcessRequestMain(布尔值   includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)   6016

存储过程绝对存在。我有KDiff两个web.config文件,没有区别。 我能想到的唯一问题是,在服务器上,它作为另一个根站点的子应用程序在Web应用程序中。这可能是原因。它是从其他应用程序继承数据库连接字符串?如果有,我有什么方法可以阻止这种行为吗?

1 个答案:

答案 0 :(得分:0)

检查创建存储过程的模式。

我可能会在您的帐户下创建存储过程,这就是为什么当您在本地计算机上运行它时能够找到SP而不是在服务器上的其他帐户下运行时。