2012-06-26 3 views
1

Я использую модуль ImageResizer в проекте ASP.NET MVC 4 вместе с плагинами SqlReader и MvcRoutingShim.Плагин MvcRoutingShim не имеет эффекта

Когда я пытаюсь получить доступ к URL ~/databaseimages/123.jpg (к примеру), я просто получить стандартную ошибку 404 - The resource cannot be found.

Мое ожидание было то, что ImageResizer будет обрабатывать эту просьбу и попытаться прочитать изображение из базы данных, но это Безразлично даже не пытайтесь подключиться (я использовал SQL Profiler для проверки этого).

Что может быть неправильным?

Это выход /resizer.debug:

Image resizer diagnostic sheet  26-06-2012 20:42:57 

1 Issues detected: 

(Warning): To potentially see additional errors here, perform an image resize request. 



You are using paid bundles: Cloud Bundle, Performance Bundle 

Registered plugins: 

ImageResizer.Plugins.Basic.DefaultEncoder 
ImageResizer.Plugins.Basic.NoCache 
ImageResizer.Plugins.Basic.ClientCache 
ImageResizer.Plugins.Basic.Diagnostic 
ImageResizer.Plugins.Basic.SizeLimiting 
ImageResizer.Plugins.MvcRoutingShim.MvcRoutingShimPlugin 
ImageResizer.Plugins.SqlReader.SqlReaderPlugin 
ImageResizer.Plugins.DiskCache.DiskCache 

Configuration: 

<resizer> 
<plugins> 
<add name="MvcRoutingShim" /> 
<add name="SqlReader" prefix="~/databaseimages/" connectionString="database" idType="UniqueIdentifier" blobQuery="SELECT Content FROM Images WHERE [email protected]" modifiedQuery="Select ModifiedDate, CreatedDate From Images WHERE [email protected]" existsQuery="Select COUNT(ImageID) From Images WHERE [email protected]" requireImageExtension="false" cacheUnmodifiedFiles="true" extensionPartOfId="false" vpp="true" untrustedData="false" /> 
<add name="DiskCache" /> 
</plugins> 
</resizer> 

(...)

+0

Пожалуйста, включите содержимое /resizer.debug в вашем вопросе. –

+0

Кроме того, убедитесь, что вы не используете тильду в URL-адресе - это только для использования на стороне сервера. –

+0

@ComputerLinguist: Я не использую тильду, а скорее: http: // localhost: 50272/databaseimages/123.jpg – pvieira

ответ

1

В файле Web.config, вы заявили, что идентификаторы изображений все идентификаторы GUID: idType="UniqueIdentifier", но использовали целое число в URL: localhost:50272/databaseimages/123.jpg.

<add name="SqlReader" prefix="~/databaseimages/" connectionString="database" 
idType="UniqueIdentifier" requireImageExtension="false" 
cacheUnmodifiedFiles="true" extensionPartOfId="false" 
vpp="true" untrustedData="false" /> 

Если вы не указали идентификатор GUID в URL-адресе, запрос будет проигнорирован. Измените idType на другой тип данных, например Int, или используйте правильный тип данных в URL-адресе.

Источник: http://imageresizing.net/plugins/sqlreader

Смежные вопросы