问题标签 [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.
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 中,它只有在我给出硬代码区域名称而不是动态区域名称时才有效
angular - ASP.NET Core 3.1 为 ashx 文件添加端点
我在我的 ASP.NET Core 3.1 应用程序中使用验证码,验证码库生成ashx文件以独立显示图像。
我必须为此定义特殊路由,因为我的主项目包含 SPA 项目(现有 ClientApp 文件夹),并且当为此路由“ http://localhost:5000/captcha.ashx ”执行请求时,此路由被忽略并导航到定义的路由角度项目然后finnaly显示404。
我该如何定义这条路线?
在我的启动文件中
.net-core - JilOutputFormatter:不允许同步操作。调用 WriteAsync 或将 AllowSynchronousIO 设置为 true
我的.NET Core 3.1
项目中有这个格式化程序(我最近从 升级2.1
):
我用这个片段将它添加到管道中:
当应用程序打开时,它就像一个魅力2.1
。但是现在3.1
我收到了这个错误:
处理请求时发生未处理的异常。InvalidOperationException:不允许同步操作。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true。
我尝试异步写入操作,但在Jil
. 请问你有什么想法吗?
注意:我知道有一些答案(例如这个答案)是在说如何AllowSynchronousIO
. 但我对如何异步写入感兴趣Jil
。
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 以在其上运行?
c# - WPF 应用程序似乎没有收到响应
我目前有两个独立的项目,一个是带有 .NET Framework 4.7.2 的 WPF 应用程序,另一个是带有 ASP.NET Core 3.1 的控制台应用程序。控制台应用程序也曾经是 .NET 4.7.2,但我刚刚将其移至 Core。
WPF 应用程序向控制台应用程序发送一个对象,控制台应用程序用它做一些事情并返回一个响应。我目前的问题是 WPF 应用程序成功发送对象,控制台应用程序接收它并执行它需要的操作,但是当它发送响应时,WPF 应用程序只是挂起并且必须完全停止。这是两者的代码:
WPF 应用程序(在将控制台移至核心之前运行良好):
控制台应用程序(甚至使用邮递员发送正确的响应):
任何帮助将不胜感激。
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)
我尝试在网络上找到与我的问题相关的任何解决方案,但没有运气。
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] 中定义的类型。
这个问题有同样的错误,但对于类:
这个项目只是隐藏了错误:
https://github.com/OrchardCMS/OrchardCore/pull/3720
如何正确覆盖包中定义的区域视图?
包需要提供什么?作为包的用户,我需要做什么?
也许有可能以某种方式从 nuget 包中排除视图?
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 触发器以返回一个内部带有枚举的对象。
我的版本:
附加信息
我已经尝试了多种解决方法,所以这是我的一些观察。
OkObjectResult
由ObjectResultExecutor处理。我尝试将实现复制到我的解决方案中并将其添加到 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
我们可以在启动时配置的不同。
在这一点上,我用完了线索,转向你们。我希望有人可以为我指明正确的方向。
asp.net-core - 如何使用 Entity Framework Core 查询不同的数据库
我想从 EF Core 查询另一个数据库只是为了获取另一个数据,我不想创建数据库上下文,因为我不想修改这个数据库。我怎样才能做到这一点?我一直在为此使用 Dapper,但我正在升级到 Asp .NET Core 3.1 并减少依赖项。
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(),因为它在任务中运行。