Удаленные клиенты не могут открыть файл XLS с помощью ASP.NET/ADO

Я пытаюсь сделать следующее:

  1. Пользователь переходит на веб-страницу, загружает файл XLS
  2. используйте ADO .NET, чтобы открыть файл XLS с помощью подключения движка JET к локально загруженному файлу на веб-сервере

Все это отлично работает локально (моя машина как клиент и веб-сервер) - и фактически работает на веб-сервере клиента с удаленными клиентами, но не работает при попытке внутреннего тестирования с помощью удаленного клиента.

Я получаю следующую ошибку:

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 вступили в силу.

На данный момент я в полной растерянности

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 747
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ладно, разобрался -

оказывается, что даже при использовании IIS олицетворения и переменных среды TMP / TEMP, установленных на C: \ WINDOWS \ Temp, процесс ASP.NET по-прежнему выполняется под учетной записью ASPNET, и каждому отдельному пользователю необходимы разрешения для документов и настроек \ ASPNET \ Локальные настройки \ временная папка

Другой способ обойти это, вероятно, заключаться в создании нового пула приложений и запуске этого пула приложений от имени пользователя с разрешениями для нужной папки, а не ASPNET.

Перейти в каталог \ Documents and Settings \ "machineName" \ ASPNET \ Local Settings \ Temp и дайте права на чтение и запись пользователю EveryOne Тогда все будет нормально. Кроме того, вы должны установить "" в файле web.config

Другие вопросы по теме