2013-04-17 4 views
0

Я использую httphandler для переназначения браузера Urls на файлы на моем веб-сайте. Это работает отлично, но у меня возникают проблемы с доступом к файлам, которые я создал в новом каталоге. URL выглядит следующим образом:404 в ASP.Net с использованием httphandler

http://mobile.mysite.com/monitoring/help/help.aspx 

Однако информация, возвращаемая в сообщении об ошибке 404 показывает, что он не может найти файл под:

D:\Sites\Website\monitoring\help\help.aspx 

же файл действительно, расположенный под:

D:\Sites\Website\mobile\monitoring\help\help.aspx 

Мой обработчик http обычно распознает «мобильный» субдомен. Фактически, если я оставил фактический файл и просто использовал каталог, мой обработчик действительно вызван. Даже если я поставил точку останова в моем коде, VS никогда не будет вызван. Почему IIS обращается к help.aspx под каталогом, который не существует? Почему мой httphandler не называется. Как я уже упоминал, httphandler действительно работает практически для всех других файлов. Я могу вызвать файл aspx, расположенный в других доменах.

Это как мой обработчик выглядит в файле web.config:

<add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" /> 

Запуск ASP.NET 4.0 на IIS7

Субдомен «мобильный» на самом деле отображается в тот же IP-адрес, что и главный сайт. Связано ли это с этим? Если это так, это не объясняет, почему обработчик может получить доступ к папкам под мобильным доменом, но не к файлам aspx.

ответ

0

Хотя у меня была запись в web.config для обработчика для обработки каталогов, я попытался переместить его в списке. Это сработало. Почему это перестало работать, это тайна, поскольку web.config не изменился очень долго. Вот как выглядят теперь записи:

<add name="FileServerHandler-Dir" path="*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" /> 
    <add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" /> 
Смежные вопросы