103 messaggi dal 26 febbraio 2007
Ho provato a fare

public class FileActionFilter : IActionFilter
    {
        public void OnActionExecuting(ActionExecutingContext context)
        {
        }

        public void OnActionExecuted(ActionExecutedContext context)
        {
            try
            {
                if (context.Result is FileStreamResult)
                {
                    var fileStreamResult = (FileStreamResult)context.Result;
                    if (fileStreamResult != null && fileStreamResult.FileStream is FileStream)
                    {
                        var fileStream = (FileStream)fileStreamResult.FileStream;
                        fileStream.Flush();
                        fileStream.Close();
                        if (fileStream.Name.Contains("\\TmpData\\") && File.Exists(fileStream.Name))
                        {
                            File.Delete(fileStream.Name);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
        }
    }



services.AddTransient<FileActionFilter>();
            services.AddMvc(options =>
            {
                options.Filters.AddService<FileActionFilter>();
            })



La action lavora correttamente ed elimina il file, però poi la risposta che arriva al client è:

"errorCode": "Cannot access a closed file.",
"stackTrace": " at System.IO.FileStream.ReadAsync(
Modificato da Federico.C il 02 aprile 2019 16:52 -
103 messaggi dal 26 febbraio 2007
Risolto con

public class FileActionFilter : IResultFilter
    {

        void IResultFilter.OnResultExecuted(ResultExecutedContext context)
        {

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.