#vb.net #visual-studio-2008
#vb.net #visual-studio-2008
Вопрос:
У меня есть запрос, который нормально работает на моем локальном сервере, но при размещении на сервере он возвращается с этой ошибкой,
Ошибка сервера в приложении «Страница».
ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено, и драйвер по умолчанию не указан
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.Data.Odbc.OdbcException: ОШИБКА [IM002] [Microsoft] [ODBC Driver Manager] Имя источника данных не найдено, и драйвер по умолчанию не указан
Ошибка источника:
Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение. Информацию о происхождении и местоположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.
Трассировка стека:
[Исключение OdbcException (0x80131937): ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено, и драйвер по умолчанию не указан] System.Data.Odbc.OdbcConnection.Ошибка обработки (OdbcHandle hrHandle, повторный код retcode) 1159314 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle environmentHandle) 95 System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection Outconnection, OdbcConnectionString Параметры подключения) 53 System.Data.Odbc.OdbcConnectionFactory.Создайте подключение (параметры DbConnectionOptions, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) 55 System.Data.База поставщиков.DbConnectionFactory.Создайте nonpooledconnection (DbConnection owningConnection, DbConnectionPoolGroup poolGroup) 29 System.Data.База поставщиков.DbConnectionFactory.Получить подключение (DbConnection owningConnection) 4866464 System.Data.База поставщиков.DbConnectionClosed.openConnection (DbConnection Outconnection, DbConnectionFactory ConnectionFactory) 117 System.Data.Odbc.OdbcConnection.Открыть () систему 40 .Данные.Обычный.DbDataAdapter.QuietOpen (подключение IDbConnection, состояние подключения и исходное состояние) 31 System.Data.Обычный.DbDataAdapter.Заполнить внутренний (DataSet dataset, DataTable[] таблицы данных, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 112 System.Data.Обычный.DbDataAdapter.Заполнить (DataSet DataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 287 System.Data.Обычный.DbDataAdapter.Заполнить (DataSet набор данных, строка srcTable) 92 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(аргументы DataSourceSelectArguments) 1297 System.Web.UI.WebControls.BaseDataList.getData() 38 System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(логический useDataSource) 153 System.Web.UI.WebControls.BaseDataList.Привязка к базе данных (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.Предварительный просмотр recursiveinternal() 80 System.Web.UI.Control.Предварительная обработка recursiveinternal() 171 Система.Web.UI.Control.Предварительный просмотр recursiveinternal() 171 System.Web.UI.Page.ProcessRequestMain(логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) 842
есть идеи? приветствия!
Ответ №1:
Вы используете 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 в системе, а не на вкладке Пользователя. Таким образом, он доступен для любого входа, под которым может запускаться приложение.