问题标签 [asp.net-core-6.0]
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.
c# - ASP.NET Core 6 中的“访问控制允许来源”
经过测试Postman
并且工作正常。在浏览器中我得到这个错误:
从源“https://localhost:44426”访问“http://localhost:5081/api/Accounting/GetSales”的 XMLHttpRequest 已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头在请求的资源上。
带有 Angular 和 .Net6 的 Asp Net Core 项目
c# - 类库中的 Microsoft.Extensions.DependencyInjection
我正在为 .NET 6 制作一个 C# 类库,它为 Web 配置和 HTTP 进行了一系列设置。在IServiceCollection
我试图调用Configure
需要一个部分的方法,如下所示:
如果我在 Web 项目中做到这一点,效果会很好。在类库项目中,IConfigurationSection
不存在采用 an 的扩展方法。
在 web 项目中,这似乎来自 Microsoft.Extensions.DependencyInjection,但它必须在其他地方。对于库项目,我包含了以下 NuGet 包。
asp.net-core-mvc - UseBlazorFrameworkFiles 扩展不可用
我正在尝试使用 Blazor wasm 设置一个 ASP.NET Core MVC 项目。
看:
如何在现有的 .NET MVC 项目中启用/使用/配置 WebAssembly Blazor?
但似乎 UseBlazorFrameworkFiles 服务不可用。
谁能告诉我我做错了什么?
我在 VS2019 中的设置是:
请帮忙?
问候斯特凡
c# - NetCore 6.0 如何访问 dbContext 文件中的连接字符串
免责声明:我正在尝试了解有关 net 6.0 的更多信息,并且是新手。
这是我正在尝试做的事情:
- 我正在尝试访问 TransparencyContext 中的 IConfiguration 文件,但我不断收到配置为空错误:System.ArgumentNullException:'值不能为空。(参数'connectionString')'。
这是我所做的:
- 更新了 dbContext 的构造函数以注入IConfiguration 配置
这个 Context 文件的大部分是自动生成的,我唯一做的就是更新public TransparencyContext(IConfiguration config)
了 Iconfig,这样我就可以访问它了 optionsBuilder.UseSqlServer(config.GetConnectionString("SQLDB"));
TransparencyContext.cs
然后我尝试通过这样做从家庭控制器测试它。
当我这样做时,我得到配置变量(在 TransparencyContext 中)为空(System.ArgumentNullException: 'Value cannot be null(Parameter 'connectionString')')。我没有更改我的 program.cs,并且是创建项目时的方式。
程序.cs
我知道可以从中访问配置文件,app.Configuration
但不确定如何使 TransparencyContext.cs 可以访问配置,因此我可以获取 db 的连接字符串。我尝试查看 Microsoft 文档,但它们没有显示它们如何制作 Iconfiguration可用并且只向他们展示使用它。非常感谢任何帮助。
我想我可能需要注册一个服务来配置,但不知道该怎么做。
应用设置.json
sql - .NET Core 6 中的连接字符串
我正在使用 .NET Core 6 Web API。但我似乎无法弄清楚连接字符串现在是如何工作的。
这里被注释掉的第一部分工作正常。但我需要能够将程序扔到不同的系统上,并用appsettings.json
.
第二部分是我尝试过的,但这不起作用。
.net core 6 中的配置连接字符串是我从中获得的。
我的appsettings.json
:
我想补充一点,它不会引发错误。它似乎没有找到联系。
c# - ASP.NET Core Web API:按查询参数路由
我来自一个沉重的 Java/Spring 背景,并试图将一些知识转移到 ASP.NET Core 6。
在 Spring 中RestController
,我可以根据查询参数的存在来路由请求。
因此,HttpRequest
带有 uri:/students?firstName=Kevin
的 a 可以路由到与带有 uri: 的 a 不同的控制器HttpRequest
方法/students
。
在 ASP.NET Core 6 中,在完成一些示例并阅读 Web API 文档后,我无法确定是否可以实现等价物。
这是我要实现的目标,这是否可以使用两种方法和路由配置来识别根据查询参数调用哪个控制器方法?
c# - .NET Core 6 - 如何在启动期间在 Program.cs 中获取没有依赖注入的 ILogger 实例
我已经更新了原始问题的内容,因为我开始在试图帮助我的人中引起一些混乱。
我正在使用库“Microsoft.ApplicationInsights.AspNetCore”将日志发送到 Azure。使用这个库的挑战之一是,在为库创建服务之前,它不会向 Azure 发送任何日志事件。
鸡和蛋的情况是,我需要在 Net Core 6 Web 应用程序的启动过程的最早阶段(即在实际创建 App Insights 需要运行的服务之前)编写日志并将它们发送到 Azure。
我需要在应用程序启动过程的早期阶段编写日志的原因是为了捕获用户登录的详细信息,其中 Microsoft 登录页面将在 .Net Core 应用程序启动后立即弹出。
在下面的代码示例中,您可以看到我创建了一个记录器工厂的实例,以便在构建和启动其余服务之前,我可以在 program.cs 文件中本地写入一些日志。尽管使用此方法可以写入控制台,但不会向 App Insights 发送任何事件。我认为这是因为 App 洞察库在创建所需服务之前尚未建立,该服务位于 program.cs 文件的后期阶段。
c# - 怎么说日期时间 - EF Core 6.0 中没有时区的时间戳
我将 ASP.NET Core 项目从 3.1 迁移到 6.0。
我已复制旧迁移并将其粘贴到我们的新版本
EF Core 3.1(旧)上的迁移
EF Core 6.0 中的迁移(新)
迁移失败,因为这条线
已经改变。
我想从这个包中:
到这个包:
c# - 实现业务逻辑层时如何避免编写许多只调用另一个函数的函数
我正在开发一个 Web 应用程序,它使用 Angular 12 作为前端,使用 ASP.NET Core 6 作为后端。在我们的团队中,我们通常将任何东西写成 3 层应用程序(如果可能的话),由表示层、业务逻辑层和数据层组成。在这个项目的情况下,这意味着例如当某种类型的所有实体(我们称之为它Car
)从服务器请求时,会发生以下情况(简化):
请求到达
CarController.cs
控制器。这里的carManager
实例属于业务层,提供与汽车实体交互的功能(大部分是 CRUD)。依赖注入用于将carManager
实例注入控制器:如果有任何业务逻辑相关,将
GetCarsAsync()
在carManager
. 然而,在许多情况下,这不是必需的。因此,我经常以像这样调用数据层的相应函数的“愚蠢”函数结束。本carAccessor
例中的 属于数据层。此处也使用依赖注入将其实例注入管理器:然后在实体的相应访问器中完成对数据的实际查询。例子:
虽然这使得在应用程序中不混淆业务逻辑和数据访问变得很容易,但它确实创建了大量的代码,除了调用其他代码之外什么都不做。因此,在某些情况下,业务层只是因为懒惰而被省略,业务逻辑最终只是在其他地方实现,例如直接在控制器中实现。有一个简单的解决方案吗?
c# - Core 6.0 Web API 本地化 IStringLocalizer 选择不正确的文化
我正在使用带有本地化功能的 Core 6.0 开发一个 Web API 项目。
我使用了一些在线指南,主要是这个
我正在为资源使用外部库。
Program.cs
:
扩展方法:
控制器:
和 BaseController:
外部库LangRes
有一个空App
类和
App.en-US.resx
以TEST
键This is english
为值
App.he-IL.resx
以TEST
键This is hebrew
为值
App.ru-RU.resx
以TEST
键This is russian
为值
使用时options.DefaultRequestCulture = new RequestCulture(culture: "en-US")
,两者account/Test/he-IL
和account/Test/ru-RU
都不匹配,并且本地化程序使用回退en-US
,因此响应为This is english
。
何时options.DefaultRequestCulture = new RequestCulture(culture: "he-IL")
使用:
account/Test/ru-RU
不匹配并且定位器使用回退he-IL
但是account/Test/en-US
确实匹配正确,结果是This is english
!
何时options.DefaultRequestCulture = new RequestCulture(culture: "ru-RU")
使用:
account/Test/he-IL
不匹配并且定位器使用回退ru-RU
但是account/Test/en-US
确实匹配正确,结果是This is english
!
调试显示为每个请求RouteDataRequestCultureProvider
返回正确的文化。ProviderCultureResult
我在这里想念什么?这似乎不是预期的行为。