问题标签 [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 回答
10865 浏览

c# - 端点路由.net core 3-多个区域

我正在尝试从 .net core 2.2 路由迁移到 asp.net core 3 中的端点路由,并在启动时使用以下路由

我的 .net core 2.2 路线是

.net 核心 3 路由

我的问题是在.net core 2.2 上面的配置映射多个区域等,area1 area2但在.net core 中,它只有在我给出硬代码区域名称而不是动态区域名称时才有效

0 投票
0 回答
344 浏览

angular - ASP.NET Core 3.1 为 ashx 文件添加端点

我在我的 ASP.NET Core 3.1 应用程序中使用验证码,验证码库生成ashx文件以独立显示图像。

我必须为此定义特殊路由,因为我的主项目包含 SPA 项目(现有 ClientApp 文件夹),并且当为此路由“ http://localhost:5000/captcha.ashx ”执行请求时,此路由被忽略并导航到定义的路由角度项目然后finnaly显示404。

我该如何定义这条路线?

在我的启动文件中

0 投票
3 回答
1971 浏览

.net-core - JilOutputFormatter:不允许同步操作。调用 WriteAsync 或将 AllowSynchronousIO 设置为 true

我的.NET Core 3.1项目中有这个格式化程序(我最近从 升级2.1):

我用这个片段将它添加到管道中:

当应用程序打开时,它就像一个魅力2.1。但是现在3.1我收到了这个错误:

处理请求时发生未处理的异常。InvalidOperationException:不允许同步操作。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true。

我尝试异步写入操作,但在Jil. 请问你有什么想法吗?

注意:我知道有一些答案(例如这个答案)是在说如何AllowSynchronousIO. 但我对如何异步写入感兴趣Jil

0 投票
1 回答
8257 浏览

c# - .NET Core 3.1/IHostBuilder 的 UseUrls 等效项

以前,使用 .NET Core 2.2,我可以添加UseUrls到我的Program.cs文件中以设置 Web 服务器将在其上运行的 URL:

但是,在 .NET Core 3.1 中,Program.cs更改了默认格式:

我尝试UseUrls以与 .NET Core 2.2 相同的方式添加它,但它说:

“IHostBuilder”不包含“UseUrls”的定义,并且最佳扩展方法重载“HostingAbstractionsWebHostBuilderExtensions.UseUrls(IWebHostBuilder, params string[])”需要“IWebHostBuilder”类型的接收器

如何使用 .NET Core 3.1(使用IHostBuilder而不是IWebHostBuilder)设置服务器的 URL 以在其上运行?

0 投票
1 回答
208 浏览

c# - WPF 应用程序似乎没有收到响应

我目前有两个独立的项目,一个是带有 .NET Framework 4.7.2 的 WPF 应用程序,另一个是带有 ASP.NET Core 3.1 的控制台应用程序。控制台应用程序也曾经是 .NET 4.7.2,但我刚刚将其移至 Core。

WPF 应用程序向控制台应用程序发送一个对象,控制台应用程序用它做一些事情并返回一个响应。我目前的问题是 WPF 应用程序成功发送对象,控制台应用程序接收它并执行它需要的操作,但是当它发送响应时,WPF 应用程序只是挂起并且必须完全停止。这是两者的代码:

WPF 应用程序(在将控制台移至核心之前运行良好):

控制台应用程序(甚至使用邮递员发送正确的响应):

任何帮助将不胜感激。

0 投票
1 回答
280 浏览

ubuntu - MSB4184,VS 代码[Codium],Ubuntu 18.04.3 LTS,ASP.NET Core 项目g

我正在做一个 ASP.NET Core 项目,在 VS 代码问题选项卡中,我收到一个错误:

无法评估表达式 ""Program.cs".GetPathsOfAllDirectoriesAbove()"。System.String.GetPathsOfAllDirectoriesAbove /home/XXXX/XXXX/XXXX/Project/EmployeeManagment.csproj(MSB4184)[60,27]

EmployeeManagement.cs项目

使用 SDK .NET Core SDK (3.1.100)

我尝试在网络上找到与我的问题相关的任何解决方案,但没有运气。

0 投票
0 回答
284 浏览

asp.net-core - 类型 [某些视图] 与导入的类型 [默认视图] 冲突 (CS0436)

我正在尝试覆盖在我正在使用的 nuget 包中找到的剃刀视图。视图在 MVC 区域中定义。

构建时,我收到视图冲突的警告/错误。对我来说幸运的是,似乎使用了我的覆盖包视图的自定义视图,并且当使用它加载的视图时,我希望它会加载,但我真的很想摆脱警告并以正确的方式覆盖视图。

错误

错误 CS0436:

[Areas_AreaName_Views_SomeFolder_Login] 中的类型

[.../obj/Debug/netcoreapp3.1/Razor/Areas/AreaName_Views_SomeFolder_Login]

与导入的类型冲突

[Areas_AreaName_Views_SomeFolder_Login] 在

[Nuget 包命名空间]。

使用 [.../obj/Debug/netcoreapp3.1/Razor/Areas/AreaName_Views_SomeFolder_Login] 中定义的类型。

这个问题有同样的错误,但对于类:

CS0436:类型与导入的类型冲突

这个项目只是隐藏了错误:

https://github.com/OrchardCMS/OrchardCore/pull/3720

如何正确覆盖包中定义的区域视图?

包需要提供什么?作为包的用户,我需要做什么?

也许有可能以某种方式从 nuget 包中排除视图?

0 投票
3 回答
2393 浏览

c# - 使用 Azure Functions 3.0 中的属性将枚举序列化为字符串

我尝试在 Azure Functions 3.0/3.1 应用程序中获取 HTTP 触发器以返回枚举的字符串表示形式,但没有任何运气。我已经尝试过 Core 3.0 和 Core 3.1。

给定这个类:

我希望这个 HTTP 触发器:

返回{ "test": "TestValue" }。相反,它返回{ "test": 0 }.

[JsonConverter(typeof(StringEnumConverter))]在 .Net Core 2 中,我可以使用命名空间来装饰枚举Newtonsoft.Json以实现这一点。这现在不起作用。

我知道 .Net Core 3 切换到 -namespace 中的转换器,所以我尝试使用from namespaceSystem.Text.Json装饰相同的枚举。这也不起作用。[JsonConverter(typeof(JsonStringEnumConverter))]System.Text.Json.Serialization

所有其他类似的问题要么说上述应该可以工作,要么像这样说通过在.AddControllers()or -chain 中配置 JsonOptions 来解决它.AddMvc(),但是对于一个不起作用的函数应用程序。函数运行时负责设置控制器,因此我们无法直接访问进一步的配置 AFAIK。

使用核心工具的准系统 Azure Functions 项目应该可以重现该问题:

然后更改 http 触发器以返回一个内部带有枚举的对象。

我的版本:

附加信息

我已经尝试了多种解决方法,所以这是我的一些观察。 OkObjectResultObjectResultExecutor处理。我尝试将实现复制到我的解决方案中并将其添加到 DI 容器中,以便我可以调试:

在链接源的第 101 行,选择了格式化程序。有趣的是,当我在这一点上休息时,选择的格式化程序是NewtonsoftJsonOutputFormatter!我认为第一个JsonConverter- 属性应该适用于此,但事实并非如此。

我认为修改可用输出格式化程序列表是值得的。ActionResultExecutor 使用DefaultOutputFormatterSelector进行选择,然后注入IOptions<MvcOptions>以获取输出格式化程序。

为了强制DefaultOutputFormatterSelector选择不同的我尝试了这个:

请注意,常规IConfigureOptions<T>不能用作options.Outputformatters-collection 缺少除 之外的所有其他格式化程序Microsoft.AspNetCore.Mvc.WebApiCompatShim.HttpResponseMessageOutputFormatter,这本身很奇怪(为什么全新的 3.0 应用程序使用兼容性垫片?)。

我尝试NewtonsoftJsonOutputFormatter使用以下方法从集合中删除类型:

为此,我必须引用 nuget 包Microsoft.AspNetCore.Mvc.NewtonsoftJson来访问该类型,但是我引用它时的类型与运行时使用的类型不同。type.Assembly.CodeBase因为运行时使用的类型位于%USERPROFILE%/AppData/Local/AzureFunctionsTools/但来自 nuget 的类型位于Project root/bin/Debug. 我以前从未遇到过这种情况。通常,包将是一个临时依赖项,因此我可以在不明确依赖包的情况下自己引用它,所以我不确定这里发生了什么。这是正常的,还是我的环境有问题?

当我以另一种方式删除它时,它并不重要并且无论如何它都被选中了,所以看起来MvcOptions注入DefaultOutputFormatterSelector的内容与MvcOptions我们可以在启动时配置的不同。

在这一点上,我用完了线索,转向你们。我希望有人可以为我指明正确的方向。

0 投票
1 回答
53 浏览

asp.net-core - 如何使用 Entity Framework Core 查询不同的数据库

我想从 EF Core 查询另一个数据库只是为了获取另一个数据,我不想创建数据库上下文,因为我不想修改这个数据库。我怎样才能做到这一点?我一直在为此使用 Dapper,但我正在升级到 Asp .NET Core 3.1 并减少依赖项。

0 投票
1 回答
8977 浏览

ssl - 如何使 gRPC 客户端与另一台机器上的 gRPC 服务器通信?两者都在 Aspnet Core 3.0 中。可能的 SSL 问题

因此,通过标题,您知道我要构建什么。

我已经有一个 gRPC 服务器和 3 个客户端在同一台机器上一起交谈。服务器可通过 http://localhot:5001 访问。一切运行顺利,但如果我在另一台机器上运行客户端,他们将无法访问服务器。所以我安装了 IIS 并将服务器放置在那里,以便通过域 beta.server.com 向外部提供服务。我更改了客户端计算机上的主机文件,以转到服务器在 IIS 上运行的计算机 ip(192.168.5.49)。

当我尝试通过 http 访问浏览器时,我收到一条消息,说我只能连接 gRPC 客户端。通过 https 表示 NET::ERR_CERT_COMMON_NAME_INVALID。也许这就是问题所在......(在写完其余部分后发现)。

通过尝试将 gRPC 客户端连接到 http( http://beta.server.com ),我收到一条错误消息,指出不支持 http/1.1,这是真的,此服务仅适用于 http2。

当尝试使用 https ( https://beta.server.com ) 连接到服务器 ip 时,我收到无法建立 ssl 连接的错误。如下:

错误位于服务器中 program.cs 的第 29 行。我的代码如下:第 29 行是 webBuilder.UseStartup():

我尝试在客户端计算机和运行 IIS 的服务器计算机中的 IIS 中使用 Visual Studio localhost 证书和自签名证书。

此外,我在客户端中使用了这一行来信任所有证书:

我从中得到:如何在 ssl 时忽略证书检查

我不知道还能做什么。任何人都可以帮忙吗?

##################### 更新 ######################

我已将此代码添加到客户端

现在我没有 SSL 错误,但这个错误:

在第 37 行,我有 task.wait(),因为它在任务中运行。