传入的表格格式数据流(TDS)协议流不正确

时间:2018-12-31 20:02:17

标签: c# sql-server api asp.net-core

我正在尝试将更改保存到我创建的继承ActionFilterAttribute的过滤器上。基本上,过滤器是一个基本的API日志,用于记录对我的API的所有请求。它是用.NET Core 2.2编写的。

我得到的错误如下:

  

SqlException:传入的表格格式数据流(TDS)协议流不正确。流意外结束。

发生在此过滤器上,而不出现在我使用数据库上下文的任何控制器上。

我正在Startup.cs中注册过滤器,如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<AthenaContext>(opts => opts.UseSqlServer(Configuration["ConnectionString:AthenaDB"]));
    services.AddScoped<LogFilter>();
    services.AddMvc();
    services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info {Title = "Athena API", Version = "v1"}); });
}

然后用[ServiceFilter(typeof(LogFilter))]

装饰API类

实际的过滤器(为简便起见,我删除了一些不必要的代码):

public class LogFilter : ActionFilterAttribute
{
    public readonly AthenaContext _db;

    public LogFilter(AthenaContext context)
    {
        _db = context;
    }

    public override void OnActionExecuting(ActionExecutingContext context)
    {
    ........
        //Log the request
        _db.ApiLogs.Add(new ApiLog
        {
            EndPoint = $"{controllerName}/{actionName}",
            RequestHeader = requestHeader,
            RequestBody = requestBody,
            IpAddress = ipAddress
        });

        //Save the DB changes
        _db.SaveChanges();

        //Execute the base request
        base.OnActionExecuting(context);
    }

0 个答案:

没有答案