【问题标题】:Issue with iis , sql server and web applicationiis、sql server 和 web 应用程序的问题
【发布时间】:2014-05-05 08:20:04
【问题描述】:

我从 Visual Studio 运行 Web 应用程序时遇到问题,它工作正常,它正在从 SQL Server 获取数据,但是当我在 IIS 上部署 Web 应用程序时,所有页面都没有与数据库工作连接,但页面有连接没有。

错误:

Server Error in '/EmployeeCheckInAndOut' Application.

Invalid object name 'userinfo'.

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'userinfo'.

来源错误:

Line 21:             SqlDataReader myReader = null;
Line 22:             SqlCommand myCommand = new SqlCommand("select * from userinfo", myConnection);
Line 23:             myReader = myCommand.ExecuteReader();
Line 24:             //userInfo = new ConverterHelper().ConvertToUserInfo(myReader); 
Line 25:             DataTable dt = new DataTable();
Source File: C:\Users\user\Documents\Visual Studio 2010\Projects\EmployeesCHeckInAndOut\ApplicationDAL\DAL.cs    Line: 23 

堆栈跟踪:

[SqlException (0x80131904): Invalid object name 'userinfo'.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1767866
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5352418
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +244
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +1691
   System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +61
   System.Data.SqlClient.SqlDataReader.get_MetaData() +90
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +365
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) +1406
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +177
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +53
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +134
   System.Data.SqlClient.SqlCommand.ExecuteReader() +99
   ApplicationDAL.DAL.GetUserInfo() in C:\Users\user\Documents\Visual Studio 2010\Projects\EmployeesCHeckInAndOut\ApplicationDAL\DAL.cs:23
   ApplicationBLL.ApplicationBL.GetUserInfo() in C:\Users\user\Documents\Visual Studio 2010\Projects\EmployeesCHeckInAndOut\ApplicationBLL\ApplicationBL.cs:15
   EmployeesCHeckInAndOut.EmployeesCHeckInAndOut.Page_Load(Object sender, EventArgs e) in C:\Users\user\Documents\Visual Studio 2010\Projects\EmployeesCHeckInAndOut\EmployeesCHeckInAndOut\EmployeesCHeckInAndOut.aspx.cs:18
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
   System.Web.UI.Control.OnLoad(EventArgs e) +92
   System.Web.UI.Control.LoadRecursive() +54
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772

【问题讨论】:

    标签: sql visual-studio-2010 sql-server-2008 iis


    【解决方案1】:

    你是如何连接到数据库的?

    记住这些:

    当您在 Visual Studio 中运行应用程序时,它会在您的凭据下运行。但是当你部署后在 IIS 上运行它时,它运行在为应用程序配置的应用程序池设置的帐户下,通常是 INETUSER。

    因此,如果您仔细观察,您可能已经为您的凭据设置了一个帐户或对数据库的访问权限,但不是 INETUSER。

    提供更多信息,您在哪里以及如何设置连接字符串。

    【讨论】:

    • 代码中的连接字符串为静态(不在web.config中)且应用程序池为ASP.NETv4.0
    • 无论连接字符串在哪里,是否设置了凭据?还是需要当前用户?您可以在连接字符串中设置凭据,然后进行测试。
    猜你喜欢
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多