我的查询在我的本地工作正常,但当放在服务器上时会返回此错误,
“页面”应用程序中的服务器错误。
错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.Odbc.OdbcException:ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[OdbcException(0x80131937):ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序] System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RetCode retcode)+1159314 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection连接,OdbcConnectionString constr,OdbcEnvironmentHandle environmentHandle)+95 System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection,OdbcConnectionString connectionOptions)+53 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions选项,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject)+55 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup)+29 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)+4866464 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+117 System.Data.Odbc.OdbcConnection.Open()+ 40 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection连接,ConnectionState& originalState)+31 System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)+112 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand command,CommandBehavior behavior)+287 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,String srcTable)+92 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)+1297 System.Web.UI.WebControls.BaseDataList.GetData()+38 System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)+153 System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)+54 System.Web.UI.WebControls.BaseDataList.DataBind()+55 System.Web.UI.WebControls.BaseDataList.EnsureDataBound()+ 60 System.Web.UI.WebControls.BaseDataList.OnPreRender(EventArgs e)+15 System.Web.UI.Control.PreRenderRecursiveInternal()+ 80 System.Web.UI.Control.PreRenderRecursiveInternal()+171 System.Web.UI.Control.PreRenderRecursiveInternal()+171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+842
任何想法? 干杯!
答案 0 :(得分:0)
您正在使用ODBC连接到服务器。如果您使用在服务器上创建它的DSN(存储在服务器上的命名ODBC连接),则必须确保此代码正在运行。如果使用无DSN连接(在代码中进行设置),则需要确保服务器上已安装正在使用的ODBC驱动程序。
无DSN连接字符串可能如下所示:
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;
并非所有这些都指定了驱动程序,但在这种情况下确实如此。您需要确保在服务器上安装了“SQL Native Client”驱动程序。 DNS连接在此字符串中将具有DSN条目,如下所示:
DSN=MyDBConnection;
查看您的代码,您将找到自己的代码。一旦找到了,找出你需要放在服务器上的东西。您很可能需要向服务器添加DSN。这是通过转到控制面板并搜索ODBC来完成的。在那里,您可以创建一个与开发计算机上的条目匹配的新ODBC条目。以下是创建ODBC(DSN)条目的链接:
http://support.microsoft.com/kb/305599
确保在“系统”下创建DNS,而不是“用户”选项卡。这样,它可用于应用程序可能运行的任何登录。