小编I.M*_*nev的帖子

如何在 ASP.NET Core 中保持对象存活?

我有一个 .NET Core MVC 应用程序 (C#),它使用 C++ 库 (SWIG)。在 C# 中,我需要创建其中一个类的实例,预设其回调并在服务器运行时保持其活动状态。使用此回调我从 C++ 获取数据。我尝试将对象存储在会话中,但我只能在那里存储值:

HttpContext.Session.Set(key, value);
Run Code Online (Sandbox Code Playgroud)

还尝试在 上定义它Startup,但该对象在初始化后被释放。在这种情况下最好的解决方案是什么?

注意:在回调函数中,我使用 SignalR 发布数据。

c# signalr asp.net-core-mvc

5
推荐指数
2
解决办法
2931
查看次数

在 SignalR 中更改 DefaultMessageBufferSize

我的 SignalR 库有问题。当我广播大量数据时,SignalR 的缓冲区开始堆积并分配尽可能多的可用内存,最终导致应用程序崩溃,原因是:

内存不足

在 .NET Framework 中,这可以通过设置 来解决GlobalHost.Configuration.DefaultMessageBufferSize,但我找不到它的 .NET Core 设置。

感谢这篇文章,我设法配置了我的Transport选项:

app.UseSignalR(routes =>
{
     routes.MapHub<MonitoringHub>("/MonitoringHub", options => {
        options.TransportMaxBufferSize = 256000;
        options.ApplicationMaxBufferSize = 256000; 
        options.Transports = TransportType.All;
        options.WebSockets.CloseTimeout = TimeSpan.FromSeconds(10);
        options.LongPolling.PollTimeout = TimeSpan.FromSeconds(10);
     });
}); 
Run Code Online (Sandbox Code Playgroud)

此外,我设置了 SignalR 选项:

services.AddSignalR(options => {
    options.EnableDetailedErrors = true;
});  
Run Code Online (Sandbox Code Playgroud)

但是如何设置DefaultMessageBufferSize

c# signalr asp.net-core-mvc

5
推荐指数
1
解决办法
3281
查看次数

删除 Word 文档表格中的单元格边框 (OpenXml.Wordprocessing)

我正在使用DocumentFormat.OpenXml.Wordprocessing在 Word 文档中添加表格。我需要的是删除表格最后 3(/N) 行中前 4(/6) 个单元格的边框。这些行的添加方式如下:

t.Append(new TableRow(
    new TableCell(new Paragraph(new Run(new Text()))),
    new TableCell(new Paragraph(new Run(new Text()))),
    new TableCell(new Paragraph(new Run(new Text()))),
    new TableCell(new Paragraph(new Run(new Text()))),
    new TableCell(new Paragraph(new Run(new Text("Total:")))),
    new TableCell(new Paragraph(new Run(new Text(priceTotal.ToString()))))
    ));
Run Code Online (Sandbox Code Playgroud)

我该如何设置TableCellBorders?我尝试过一些事情,例如:

TableCell cell = new TableCell();
cell.TableCellProperties.TableCellBorders.LeftBorder.Size.Value = 0;
cell.TableCellProperties.TableCellBorders.RightBorder.Size.Value = 0;
cell.TableCellProperties.TableCellBorders.TopBorder.Size.Value = 0;
cell.TableCellProperties.TableCellBorders.BottomBorder.Size.Value = 0;
Run Code Online (Sandbox Code Playgroud)

然而,我尝试过的一切都会回归System.NullReferenceException。删除单元格边框的正确方法是什么?

c# openxml wordprocessingml

4
推荐指数
1
解决办法
3337
查看次数