2010-05-28 2 views
0

На самом деле это моно версия asp.net, XSP.Что не так с этим переписыванием ASP.NET?

В моей функции начала запроса я проверяю URL-адрес и переписываю при необходимости. В одном случае я делаю

context.RewritePath("~/App_Data/public" + path); 

Когда я пытаюсь запросить образы или что-нибудь, то получаю 404 вместо содержания. Зачем?

ответ

0

Похоже, что это не поддерживается в моно-банкомате. HttpContext.Rewrite, но переписывание файлов не является.

0

Используйте Fiddler, чтобы посмотреть реальный запрос. Если путь переписывается изображения, вероятно, придется указать абсолютный путь ..

Но увы у меня нет Experince с XSP так ....

Используйте стельку, чтобы увидеть фактический запрос

+0

Это не поможет. Это не перенаправление. Его внутренняя. –

0

Изображения по умолчанию не обрабатываются ASP.NET (по крайней мере, на IIS). Можете ли вы подтвердить, что расширения изображений обрабатываются ASP.NET и не передаются напрямую?

Кроме того, изменить код незначительно:

string newpath = "~/App_Data/public" + path; 
context.RewritePath(newpath); 

и проверить значение newpath, чтобы убедиться, что это хорошо сформированный путь. Если path не имеет префикса с разделителем пути, это также может быть причиной ваших проблем.

+0

'string path = CleanPath (context.Request);' который просто удаляет все после '?' И является значением uri.path. Таким образом, это всегда /whatever/andfolder/file.ext. Это работает на веб-сервере визуальных студий и кассини в последний раз, когда я проверял. –

+0

Я никогда не слышал о CleanPath, и не могу найти его в библиотеках .NET. –

+0

Как измененный код отличается от кода, размещенного в вопросе? –