Первый шаг - переписать метод RegisterGlobalFilters для использования jsreport в качестве веб-сервера:
public static ILocalWebServerReportingService RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
var rs = new LocalReporting()
.Configure(cfg =>
{
cfg.BaseUrlAsWorkingDirectory();
return cfg;
})
.UseBinary(JsReportBinary.GetBinary())
.AsWebServer()
.Create();
rs.StartAsync().GetAwaiter().GetResult();
filters.Add(new JsReportFilterAttribute(rs));
return rs;
}
и затем нам нужно использовать ссылочную службу отчетов для остановки на конце приложения в Global.asax:
public class MvcApplication : System.Web.HttpApplication
{
private ILocalWebServerReportingService reportingService;
protected void Application_Start()
{
...
reportingService = FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
...
}
protected void Application_End()
{
reportingService.KillAsync().GetAwaiter().GetResult();
}
}