问题标签 [asp.net-core-3.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 投票
1 回答
892 浏览

c# - 简单地将 Entity Framework Core 添加到基本的 Azure 函数应用程序会导致错误

描述起来非常简单:

  • 使用 Visual Studio 2019 (16.4.1) 中的“Azure Functions”模板创建新解决方案。
  • 将 TargetFramework 更改为“.NET Core 3.1”。
  • 它将使用 Microsoft.NET.Sdk.Functions (1.0.29) 创建。
  • 将其更新到最新版本 (3.0.1)。
  • 它不起作用,因为现在我们需要一些其他的 nuget 包:
    • Microsoft.Azure.WebJobs.Core (3.0.14)
    • Microsoft.Azure.WebJobs.Extensions.Http (3.0.2)
  • 此时,应用程序在模拟器中运行。只需启动调试器,控制台窗口就会显示一切正常且工作正常。

  • 现在添加Microsoft.EntityFrameworkCore(3.1.0)包

此时,我们没有触及任何代码行,我们只是添加了给定 nuget 包的最新版本,同时设置了最新的目标框架。尽管如此,在使用或不使用调试器启动模拟器时,Azure Functions 应用程序不再工作,引发此错误:

Microsoft.Azure.WebJobs.Host:索引方法“Function1”出错。
Microsoft.Azure.WebJobs.Host:无法将参数“日志”绑定到 ILogger 类型。确保绑定支持参数类型。如果您正在使用绑定扩展(例如 Azure 存储、ServiceBus、计时器等),请确保您已在启动代码中调用了扩展的注册方法(例如 builder.AddAzureStorage()、builder.AddServiceBus( )、builder.AddTimers() 等)。

0 投票
1 回答
238 浏览

docker - Google App Engine 日志“找不到指定的框架‘Microsoft.AspNetCore.App’,版本‘2.1.1’。”

在 google app engine flexible 上运行我的 .net core 3.1 服务时,我会定期收到一系列错误,这些错误表面上与服务调用无关:

  • “找不到指定的框架‘Microsoft.AspNetCore.App’,版本‘2.1.1’。”
  • 找到了以下框架:
  • 3.0.1 在 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]

这些错误大约每 3-4 分钟记录一次 - 无论是否调用了服务。

开发和运行时:

  • Windows 上的 Visual Studio 2019,带有 1 个 webapi 服务项目 (/api/values) 和一个 docker-compose 项目
  • .Net 核心 3.1
  • Docker Linux 容器
  • Google App Engine 灵活

我已经阅读了几篇关于此类错误的文章,但就我而言,我没有任何 2.1.1 参考或代码。我的目标是.net core 3.1。我该如何解决?

当我在本地“dotnet run”或“docker run”时不会发生错误。它们只出现在 GAE 环境中。GAE 是否依赖于 2.1.1?还是 3.1.1 不“支持”

我尝试过针对多个框架,但这会在应用程序中产生各种参考问题。无论如何,服务正常运行。另一方面,查看错误日志的同事会将其用作与服务相关的任何和所有问题的替罪羊。

那么解决方案、dockerfile 或 GAE 中的问题是什么?

应用程序.yaml

0 投票
1 回答
408 浏览

c# - 使用 NLOG 时无法解析服务时缺少详细信息

我刚刚解决了 AspNetCore3.1 中的一般错误。错误只是这样写:

2019-12-11 21:52:46.6862 Microsoft.AspNetCore.Server.Kestrel 连接 ID“0HLRUMQV9RNJI”,请求 ID“0HLRUMQV9RNJI:00000001”:应用程序引发了未处理的异常。

费了好大劲才发现是因为漏了一个服务的注册:

所以,现在,我正在寻求找出为什么我没有得到有关问题所在的任何细节。我从 Visual Studio 模板创建了一个新的 Core 3.1 应用程序。我安装了 NLog.Web.AspNetCore 并添加了一个 nlog.config 文件。

应用设置:

我还将以下代码添加到 program.cs

然后,我删除了 IThingService 的注册,我开始得到同样的通用的、无用的错误:

“2019-12-11 21:52:46.6862 Microsoft.AspNetCore.Server.Kestrel 连接 ID“0HLRUMQV9RNJI”,请求 ID“0HLRUMQV9RNJI:00000001”:应用程序引发了未处理的异常。

经过一番修改,我发现我注释掉了program.cs中的那一行,“loggingBuilder.ClearProviders();” 我开始收到实际有用的错误消息:

System.InvalidOperationException:尝试激活“WebApplication3.Controllers.WeatherForecastController”时无法解析“WebApplication3.Controllers.IThingService”类型的服务。

但是,不是 NLog 进行日志记录,而是默认的 Core 3 日志记录。

NLog 的设置说明可以在这里找到: https ://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-3

那么,现在的问题是,为什么 ClearProviders() 使 nlog 工作,但在我的错误消息中丢失了详细信息?它似乎只是在管道中发生的日志,而不是在控制器/域级别。

0 投票
1 回答
3053 浏览

asp.net-mvc - ASP.NET MVC Core 3.1 应用程序中 CSHTML 更改、JS 更改所需的构建

我最近将我的ASP.NET MVC Core 2.2 应用程序升级到 Core 3.1,一切正常,但是在调试会话中,如果我对文件进行任何更改CSHTML,例如在 JS 文件中添加新的 HTML 标记或更改代码,它不会反映通过在本地主机调试会话上刷新应用程序。我将不得不停止我的 VS 并重新构建并在调试模式下运行。

这仅发生在 ASP.NET Core 3.1 的其他项目中,我使用 ASP.NET Core 2.2 进行任何 CSHTML 更改,我不必重新构建解决方案。

我在用 Microsoft Visual Studio Enterprise 2019 Version 16.4.1

任何帮助是极大的赞赏。

0 投票
0 回答
141 浏览

c# - EF Core 3.1 Intellisense 不在 Linq 语句的 Where 子句中显示表列

我正在将现有应用程序从 Asp.net Core 2.2 迁移到 Asp.net Core 3.1,并且必须修复一些从 SQL 服务器数据库查询数据的 Linq 语句。我注意到,当我在 Linq 语句中添加“Where”或“Select”子句并开始编写我的 lambda 表达式时,当我在 table 参数上使用点表示法时,intellisense 不提供列名。

使用 EF Core 3.1 的智能感知屏幕截图

使用 EF Core 3.1 的智能感知屏幕截图 我可以手动输入列名并且代码编译得很好,但这会变得乏味并且容易出现类型-o。不确定我是否需要以不同的方式配置 Visual Studio 才能使其正常工作,或者是否有其他解决方案可以解决此问题。任何建议将不胜感激。

使用 Asp.net Core 2.2 的智能感知屏幕截图

0 投票
1 回答
652 浏览

docker - Visual Studio 2019 Docker - 手动创建的 .net core 3.1 容器未在浏览器中打开

我有以下 2 个本地 linux docker 容器正在运行,其中包含 .net core 3.1 web api,所有属性如下所示。

容器 ServiceTwo_1 已由 Visual Studio 创建,单击其中的 docker 调试按钮。这可以通过http://localhost:32770/api/weatherforecast/weather在浏览器中加载。

但是容器“ServiceTwo”是使用 Visual Studio 使用的相同命令手动创建的,如下所示。

但是这个容器无法使用它的端口加载到浏览器中,即http://localhost:32769/api/weatherforecast/weather

我是否错过了手动过程中的任何步骤?

0 投票
0 回答
130 浏览

asp.net-core - 从 ASP.NET Core 2.2 迁移到 3.0(实际为 3.1)为所有库创建 launchSettings.json 文件是否正常

我正在尝试将我的 ASP.NET Core 2.2 项目迁移到 3.1。为了成功构建,我需要添加:

PropertyGroup我所有的图书馆。

我不知道这是否相关,但我注意到重新构建我的应用程序会launchSettings.json为每个 (15).NET Core类库创建。

这是正常的吗?我刚才说.csproj这是库并创建了launchSetting 文件。

0 投票
1 回答
910 浏览

vue.js - .NET Core 3 Web API + SPA 应用程序 (vue) 的 Dockerfile

由于 .NET Core 3 Web API 可以通过 NuGet 包 VueCliMiddleware 与 Vue 很好地配合使用。如何编写一个有效的简单 Dockerfile?

0 投票
1 回答
447 浏览

c# - 如何在 ASP.net core v3.1 中获取客户端机器的 Mac 地址或 IPv4 地址以唯一标识机器

当客户端从另一台机器(就像 Google)登录时,我想执行一次性密码 (OTP) 设备验证。

简单来说,每当用户在登录期间更改他们的设备时,它应该要求每个设备提供一次 OTP,因此下次他们使用该设备时,它不应该要求 OTP,它应该直接询问已验证设备的密码。

是否可以在 ASP.NET CORE v3.1 中获取客户端机器的 IP 地址或 mac 地址?我已经阅读了关于它的各种文章,他们建议将 cookie 与用户 ID 和 GUID 组合使用。如果用户从不同的机器或设备登录,还有其他方法可以跟踪吗?

0 投票
1 回答
3815 浏览

c# - ASP.Net Core 3.1:控制器方法总是从 HttpPost 调用中接收 NULL 参数

我使用带有 MVC 模式的 ASP.Net Core 3.1 创建了一个全新的 Visual Studio 2019 Web 应用程序。

我的控制器有一个 HttpPost 方法,它应该有一个传入的 Json 对象(我使用 [FromBody] 作为传入参数)。

无论我尝试什么,传入的参数始终为 Null。我尝试将参数更改为字符串,并将模型修改为简单的 3 字段类,但它仍然以 null 的形式出现。

我使用 Chrome 的开发人员工具来确保我的页面从 JavaScript Post 回调中正确发送 Json 对象(并且也使用 Postman 来执行相同的操作),结果相同:我的参数仍然为 Null。

我需要做什么才能使参数作为实际值进入?

我的控制器:

我的 DTParameters 模型:

我看到的大多数示例都说明在 Startup.cs 文件的 Configure 调用中调整 app.UseMVC 实例化,但我的没有:

(添加)

我再次重试了我的简单参数,注意到我发送的原始 ID 字段是一个整数,但是当我将它设为一个字符串(如模型所述)时,它没有问题。

所以,这意味着我必须弄清楚我的 DTParameters 模型出了什么问题。