В настоящее время, если я размещаю Доступ.MDB файл, чтобы позволить пользователям загружать, IIS7 бросает 404 ошибки. Я знаю, что файл там, и полномочия прекрасны. Это, кажется, проблема Обработчика, но я не могу выяснить, как изменить обработчик, чтобы позволить загружать файла MDB. Я предполагаю, что должен добавить что-то к разделу Handlers web.config, но я не уверен в синтаксисе.
Спасибо.
Хорошо, нашел его.
Просто нужно удалить следующую строку:
<add fileExtension=".mdb" allowed="false" />
в разделе «Запрос защитника» из файла \ Windows \ System32 \ inetserv \ config @ applationhost.config.
Эта веб-страница описывает три возможных способа и ссылки на полезные библиотеки.
Нет простого встроенного способа визуализации текста, и есть (как подробно описано на этой странице) sevaral возможных подходов, все это компромисс в зависимости от того, какие свойства вы требуете от визуализации текста.
-121--3302978-Возможно, вам сойдет с рук именованный семафор. Семафор - это в основном подсчет, он здесь, чтобы позволить разработчикам ограничить количество потоков/процессов, которые обращаются к какому-то ресурсу. Обычно это работает так
WaitForSingleObject
или тому подобное, и каждый из них продолжается без ожидания. Каждый раз, когда внутренний счетчик семафора падает. ReleaseSemaphore
. Эта функция увеличивает внутренний счетчик семафора. Я не думаю, что вы хотите использовать это так. Вместо этого следует:
WaitForSingleObject (hSemaphore, 0)
, уменьшив значение счетчика. 0 означает, что вы не хотите ждать. Все это довольно просто.
В C++
//create semaphore
HANDLER hSemaphore = CreateSemaphore(NULL, 0, BIG_NUMBER, "My cool semaphore name");
//increase counter
LONG prev_counter;
ReleaseSemaphore(hSemaphore, 1, &prev_counter);
//decrease counter
WaitForSingleObject(hSemaphore, 0);
В C #
using System.Threading;
//create semaphore
Semaphore sem = new Semaphore(0, BIG_NUMBER, "My cool semaphore name");
//increase counter
int prev_counter = sem.Release();
//decrease counter
sem.WaitOne(0);
имена и BIG_NUMBERs должны быть одинаковыми.
Если этого недостаточно для выполнения вашей задачи, вам придется изучить общую память и заблокировать доступ к ней, хотя и с именем mutex, но это немного сложнее.
-121--4746350-Или, если вы не хотите изменять системный файл конфигурации, вы можете добавить следующие строки в этот раздел web.config:
<remove fileExtension=".mdb" />
<add fileExtension=".mdb" allowed="true"/>
Например, Web.config должен быть похож на следующий:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions allowUnlisted="true" >
<remove fileExtension=".mdb" />
<add fileExtension=".mdb" allowed="true"/>
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Также см. http://www.adamwlewis.com/articles/iis-7-not-serving-files-4047-error .