Я пытаюсь сделать следующее:
Все это отлично работает локально (моя машина как клиент и веб-сервер) - и фактически работает на веб-сервере клиента с удаленными клиентами, но не работает при попытке внутреннего тестирования с помощью удаленного клиента.
Я получаю следующую ошибку:
TIME: [10/1/2008 11:15:28 AM]
SEVERITY: EXCEPTION
PROGRAM: Microsoft JET Database Engine
EXCEPTION: Unspecified error
STACK TRACE: at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
Код, генерирующий ошибку:
OleDbConnection l_DbConnection;
OleDbDataAdapter l_DbCommand;
DataSet l_dataSet = new DataSet();
l_DbConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=\"" + l_importFileName + "\";Extended Properties=Excel 8.0;");
l_DbCommand = new OleDbDataAdapter("select * from [Sheet1$]", l_DbConnection);
//try using provider to read file
try { l_DbConnection.Open(); }
Призыв к «Открыть» вызывает исключение, указанное выше.
Сайт использует олицетворение, и все вызовы совершаются, когда пользователь вошел в систему на клиенте. Что я сделал до сих пор, чтобы попытаться заставить это работать:
Выполнил шаги здесь http://support.microsoft.com/kb/251254/ и назначил разрешения для каталога переменных среды TMP / TEMP пользователю, которого я использую для тестирования (также назначил разрешения для ASPNET, а затем для «Все» в качестве одеяла «связаны ли эти разрешения с тестом?»).
Убедитесь, что файл загружается и сам файл XLS унаследовал права доступа к каталогу, которые позволяют пользователю получить полный доступ к файлу. Я также на всякий случай дал права доступа к этому каталогу «Всем» - это тоже не помогло.
Мне не приходилось изменять какие-либо переменные среды и, следовательно, не перезапускался после внесения этих изменений, но мне не нужно было, чтобы разрешения для папок / файлов Windows вступили в силу.
На данный момент я в полной растерянности





Ладно, разобрался -
оказывается, что даже при использовании IIS олицетворения и переменных среды TMP / TEMP, установленных на C: \ WINDOWS \ Temp, процесс ASP.NET по-прежнему выполняется под учетной записью ASPNET, и каждому отдельному пользователю необходимы разрешения для документов и настроек \ ASPNET \ Локальные настройки \ временная папка
Другой способ обойти это, вероятно, заключаться в создании нового пула приложений и запуске этого пула приложений от имени пользователя с разрешениями для нужной папки, а не ASPNET.
Перейти в каталог \ Documents and Settings \ "machineName" \ ASPNET \ Local Settings \ Temp и дайте права на чтение и запись пользователю EveryOne Тогда все будет нормально. Кроме того, вы должны установить "" в файле web.config