问题标签 [asp.net-core-2.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
24 回答
198071 浏览

c# - 在 System.ComponentModel 默认值属性中将 DateTime 属性的默认值设置为 DateTime.Now

有谁知道如何使用 System.ComponentModel DefaultValue 属性为 DateTime 属性指定默认值?

例如我试试这个:

它期望值是一个常量表达式。

这是在使用 ASP.NET 动态数据的上下文中。我不想搭建 DateCreated 列,而只是提供 DateTime.Now(如果它不存在)。我使用实体框架作为我的数据层

干杯,

安德鲁

0 投票
8 回答
45494 浏览

asp.net-core - 使用自定义位置时如何在 asp.net core mvc 中指定视图位置?

假设我有一个控制器,它使用基于属性的路由来处理请求的 /admin/product 的 url,如下所示:

现在假设我想将我的视图组织在一个文件夹结构中,该结构大致反映了它们相关的 url 路径。所以我希望这个控制器的视图位于此处:

更进一步,如果我有这样的控制器:

我希望框架在这里自动查找它的视图:

理想情况下,无论涉及多少 url 段(即嵌套的深度),用于通知视图位置的框架的方法将以基于属性的路由信息​​的一般方式工作。

如何指示 Core MVC 框架(我目前正在使用 RC1)在这样的位置查找控制器的视图?

0 投票
3 回答
10330 浏览

asp.net-core-mvc - .Net Core SignalR - 连接超时 - 心跳定时器 - 连接状态更改处理

只是要预先明确,这个问题是关于 .Net Core SignalR,而不是以前的版本。

新的 SignalR 与 IIS 后面的 WebSockets 存在问题(我无法让它们在 Chrome/Win7/IIS express 上工作)。因此,我使用的是服务器发送事件 (SSE)。但是,问题是大约 2 分钟后超时,连接状态从 2 变为 3。自动重新连接已被删除(显然在以前的版本中它并不能很好地工作)。

我现在想实现一个心跳计时器来阻止客户端超时,每 30 秒一次的滴答声就可以完成这项工作。

11 月 10 日更新

我现在已经设法实现服务器端 Heartbeat,基本上取自 Ricardo Peres 的https://weblogs.asp.net/ricardoperes/signalr-in-asp-net-core

  • 在 startup.cs 中,添加到public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
  • 集线器类

对于 HubClass,我添加了public async Task HeartBeat(DateTime now) => await Clients.All.InvokeAsync("Heartbeat", now);

显然,计时器、正在发送的数据(我只是发送一个 DateTime)和客户端方法名称都可以不同。

更新.Net Core 2.1+

请参阅下面的评论;不应再使用计时器回调。我现在已经实现了一个 IHostedService(或者更确切地说是抽象的 BackgroundService)来做到这一点:

在您的启动课程中,将其连接到之后services.AddSignalR();

  • 客户

初始问题的剩余部分

剩下的是如何正确地重新连接客户端,例如在 IO 暂停之后(浏览器的计算机进入睡眠状态、失去连接、更改 Wifi 或其他)

我已经实现了一个正常工作的客户端心跳,至少在连接中断之前:

  • 集线器类:public async Task HeartBeatTock() => await Task.CompletedTask;
  • 客户:

    var heartBeatTockTimer; 函数 sendHeartBeatTock() { connection.invoke("HeartBeatTock"); } connection.start().then(args => { heartBeatTockTimer = setInterval(sendHeartBeatTock, 10000); });

例如,在浏览器挂起 IO 后,invoke 方法会抛出一个异常——因为它是异步的,所以不能被简单的 try/catch 捕获。我试图为我的 HeartBeatTock 做的事情类似于(伪代码):

现在,由于几个原因,这不起作用。由于异步运行,invoke 在代码块执行后抛出异常。它看起来好像公开了一个 .catch() 方法,但我不确定如何在那里正确地实现我的想法。另一个原因是,开始一个新的连接需要我重新实现所有的服务器调用,比如“connection.on(”send"...)——这看起来很傻。

任何有关如何正确实现重新连接客户端的提示将不胜感激。

0 投票
2 回答
2719 浏览

docker - Docker 和 ASP.NET Core 2.1 预览 1

我已经从这里安装了 ASP.NET Core 2.1 预览版 1和 Visual Studio 的最新预览版。

然后我按照以下步骤操作:文件 > 新建项目 > ASP.NET Core Web 应用程序 > 选择API、检查Enable Docker Support (Os: Linux)No Authentication.

这很好地生成了项目模板,以及带有 docker compose 文件的 Docker 项目。这构建得很好,并提取了所有需要的图像。但是,当我尝试在 Visual Studio 中使用 Docker 运行它时,它似乎不起作用。

在日志中,我看到以下内容:

内容根路径:/app
现在监听:http://[::]:80
...
请求开始 HTTP/1.1 GET http://localhost:32778/ Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request开始 HTTP/1.1 GET http://localhost:32778/

现在,当我尝试对http://localhost:32778/api/values进行 GET (使用 Postman)时,没有看到任何响应:

无法得到任何响应连接到http://localhost:32778/api/values时出错。

但!Docker 日志显示正在发出请求:

Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求开始 HTTP/1.1 GET http://localhost:32778/api/values
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Internal.WebHost[ 1] 请求开始 HTTP/1.1 GET http://localhost:32778/api/values
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] 请求在 14.4873ms 307 Microsoft 完成。 AspNetCore.Hosting.Internal.WebHost:信息:请求在 14.4873 毫秒内完成 307

我在这里想念什么?如果我使用 IIS Express 运行默认项目,一切都会按预期运行。

编辑:我刚刚在 ASP.NET Core 2.0 上对此进行了测试,一切正常。

0 投票
0 回答
974 浏览

asp.net-core - 可以使静态方法异步吗?

我有一个实用程序类,ASP.NET Core 2它使用 AWS 简单通知服务发送通知。由于这是实用程序类,因此我将其设为静态,并且AmazonSimpleNotificationServiceClient's发布方法是异步的,因此我将包装静态方法也设为异步

我测试了代码,它运行良好。

但是可以使静态方法异步吗?

0 投票
4 回答
20026 浏览

asp.net - ASP.NET 核心 2.1 会话

在 ASP.NET core 2.1 中,我无法访问会话变量。

在调试时,我注意到在每个请求中,会话 ID 都会发生变化(HttpContex.Session.Id)

我在会话配置中犯了错误吗?

启动.cs

程序.cs

在调试时我注意到在每个请求会话 id 更改(HttpContex.Session.Id)

0 投票
3 回答
5621 浏览

c# - 从asp.net core 2.1中的控制器访问BackgroundService

我只需要从控制器访问我的BackgroundService 。由于 BackgroundServices 被注入

如何从 Controller 类中使用它?

0 投票
2 回答
1554 浏览

asp.net-core - 授权在 ASP.NET Core 2.1 的 Signalr 中不起作用

按照本教程,我已将我的项目从 ASP.Net Core 2.0 升级到 ASP.NET Core 2.1 。

一切都很好,直到我将 Signar Core 2.1 应用到我的项目中。

这是我的Startup.cs

这是我的SolidRequirementHandler

这是我的ChatHub.cs

当我MainPolicy使用 AngularJS 应用程序连接到ChatHub. 但是,OnConnectedAsync()在没有检查请求身份的情况下调用了函数。

MVC 控制器的策略已成功应用,但 Signalr 的策略没有。

谁能帮帮我?

谢谢,

0 投票
1 回答
143 浏览

asp.net-core-2.1 - dotnet core reactredux 模板菜单之谜

我使用以下命令从新的 Dotnet 核心 reactredux 模板生成了一个应用程序:dotnet new reactredux

生成的应用程序的菜单位于左侧。我想把它改到顶部。这是 NavMenu.js 的一部分

如果我注释掉 NavMenu.css 的导入,菜单现在位于顶部但与内容重叠。像这样 在此处输入图像描述

有什么方法可以在不更改每个内容页面的上边距的情况下将其向下移动?

如果我改为<Navbar inverse fixedTop fluid collapseOnSelect><Navbar default collapseOnSelect>我得到了这个 在此处输入图像描述

注意切割“计数器”菜单的圆角矩形。这个矩形是窗口宽度的一部分。F12 显示它是添加到导航栏之前的“col-sm-3”类。任何人都知道它来自哪里以及如何改变它?

0 投票
9 回答
33252 浏览

asp.net-core - VS2017:目标框架下拉菜单不显示 .NET Core 2.1 选项

我已经安装了VS2017 Enterprise 15.6.4. 最近.NET Core 2.1.101 SDK官方网站安装

如果我创建控制台或 asp.net 核心应用程序,我希望.NET Core 2.1它是可用的目标框架之一。有人可以帮助我了解我在这里缺少什么。

正如评论中所建议的,我安装了 15.7 preview 2。仍然没有运气和同样的问题。

在此处输入图像描述