Назад | Перейти на главную страницу

URL-адрес ASP.Net переписан с… pdf на… aspx (IIS 7)

Я пытаюсь переписать URL-адрес PDF-файла на страницу aspx, он не работает. Я тоже не вижу запроса в моем iis-журнале.

<rewrite>
  <rules>
    <rule name="PDF" stopProcessing="true">
      <match url="PDF/(.*?)/(\d*)/(.*?.pdf)$" />
      <action type="Rewrite" url="SISPdf.aspx?id={R:2}&amp;fn={R:1}" logRewrittenUrl="true" />
    </rule>
  </rules>
</rewrite>

Пример:

http://myserver:8089/PDF/ABC/123/DEF_456.pdf

следует переписать на:

http://myserver:8089/SISPdf.aspx?id=123&fn=ABC

При всех моих попытках получаю HTTP 500 или HTTP 404.

Можно ли отладить правила перезаписи?

Редактировать:

В старом IIS (<= 6) я помню, что я должен установить ISAPI-фильтр для ASP / ASP.Net в формате PDF или с расширением файла изображения, чтобы IIS знал, что он должен с этим справиться. Есть ли эквивалент?

Для отладки модуля URL Rewrite можно использовать IIS 7.x «Отслеживание неудачных запросов», которое, вопреки своему названию, может использоваться для отслеживания успешных и неудачных запросов. это страница learn.iis.net иллюстрирует, как это настроить, и количество доступной подробной отладочной информации. Вам не нужно создавать тестовую страницу, как это предлагается в записи блога - просто перейдите в раздел «Настроить отслеживание неудачных запросов».

Попробуйте изменить

<match url="PDF/(.*?)/(\d*)/(.*?.pdf)$" />

к

<match url="PDF/(.*)/(\d*)/(.*).pdf$" />

Также снимите "stopProcessing = 'true'". Поскольку вы выполняете перезапись, вы действительно хотите продолжить обработку.