У меня возникла проблема с использованием ODBC-соединения с IIS.
Вот моя конфигурация:
- IIS 5 в Windows XP
- ASP.NET 2.0
- Оракул 9
- VS 2005
Когда я тоже пытаюсь использовать свое веб-приложение в IIS, у меня возникает следующее исключение:
ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено и не указан драйвер по умолчанию
НО, когда Я использую его как веб-сайт в VS2005, у меня не было ошибок.
Итак, я бы попытался сделать очень маленькое приложение со следующим кодом:
using System;
using System.Data;
using System.Data.Odbc;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OdbcConnection con = new OdbcConnection();
con.ConnectionString = "DSN=<MyDSN>;Uid=<LOGIN>;Pwd=<PASSWORD>";
IDbCommand com = new OdbcCommand();
com.CommandText = "select sysdate from dual;";
com.CommandType = CommandType.Text;
com.CommandTimeout = 30;
com.Connection = con;
try
{
con.Open();
Response.Write(com.ExecuteScalar());
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
}
}
}
Он отлично работает на веб-сервере VS (например: http://localhost:3715/Web/Default.aspx), но у меня такое же исключение (IM002), когда я использую его в IIS (то есть: http://localhost/Tester/default.aspx).
Мой DSN объявлен в «Администраторе источника данных ODBC» и хорошо работает, когда я проверяю соединение…
Учетная запись ASPNET находится в той же группе, что и моя учетная запись пользователя (администраторы).
Полные права на учетную запись ASPNET на ключах HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC и HKEY_CURRENT_USER \ Software \ odbc.
Я прочитал это post, но ничего не работает ...
Я бы позаботился об ответе на stackoverflow (поиск, связанные вопросы и т. Д.), Google ... но я не нашел рабочего решения ...
Есть ли у кого-нибудь идея? ... < br> В чем моя ошибка? ...
ОБНОВЛЕНИЕ: 2011/04/06
Что я уже сделал:
- Трассировка для ODBC: на сервере VS’Web я получил логи; но в IIS нет ...
- Системный и Пользовательский DSN заполняются одной и той же информацией.
- Разрешить учетным записям ASPNET, IUSR_XXX, IWAN_XXX и всем пользователям (sic…) полные права на:% ORACLE_HOME%, HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC, HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE
Windows, VS и IIS предназначены для 32-битных версий (поэтому нет c: \ windows \ syswow64).
Проверьте значение PATH и сначала поместите% ORACLE_HOME%.
IIS сбрасывался каждый раз, когда я вносил изменения, мой компьютер перезагружался дважды.
Но теперь я получил это сообщение:
ERROR [IM003] Указанный драйвер не может быть загружен из-за системной ошибки 998 (Oracle dans OraHome92).
И я наконец нашел ... Администраторы установили все драйверы, чтобы их мог использовать только пользователь ...
Я бы создал системный env var ORACLE_HOME ...
Был только пользователь var : s
Спасибо за вашу помощь.
Я подтверждаю ответ Гарри М. Биггса из-за разницы между системой / пользователем ...