Вы не используете промежуточное программное обеспечение или службы, которые предоставляют изображения промежуточному программному обеспечению.
Для того, чтобы промежуточное программное обеспечение работало, оно должно иметь возможность захвата запроса изображения.При установке по умолчанию это выполняется путем сопоставления запроса с источником изображения в вашей физической файловой системе в wwwroot.
В вашем коде, хотя вы создали изолированный результат действия, возвращающий поток, содержащий ваше изображение, о котором промежуточное программное обеспечение не знает.
Отказ от ответственности, следующее основано на последнихразработчик build 1.0.0-dev000131 и, хотя вряд ли изменится, потенциально может измениться до окончательного выпуска.
https://www.myget.org/feed/sixlabors/package/nuget/SixLabors.ImageSharp.Web/1.0.0-dev000131
Для предоставления изображений изПользовательский источник, вам нужно будет создать собственную реализацию IImageProvider
и IImageResolver
, из которой вы можете использовать примеры в источнике для создания своей реализации.
После внедрения вам нужно будет зарегистрировать реализации с помощью внедрения зависимостей.Для этого необходимо использовать более детальную регистрацию, поскольку вы больше не используете значения по умолчанию.
// Fine-grain control adding the default options and configure all other services. Setting all services is required.
services.AddImageSharpCore()
.SetRequestParser<QueryCollectionRequestParser>()
.SetBufferManager<PooledBufferManager>()
.SetMemoryAllocatorFromMiddlewareOptions()
.SetCacheHash<CacheHash>()
.AddProvider<PhysicalFileSystemProvider>()
/// Add your provider here via AddProvider<T>().
.AddProvider<PhysicalFileSystemProvider>()
.AddProcessor<ResizeWebProcessor>()
.AddProcessor<FormatWebProcessor>()
.AddProcessor<BackgroundColorWebProcessor>();
После этого вы сможете полностью удалить свой результат действия и использовать комбинацию IImageProvider
и IImageResolver
дляидентифицировать запрос и вернуть изображение.