小编Sve*_*vek的帖子

如何在ASP.NET Core 2.x中使用带有Kestrel的HTTPS/SSL?

我目前正在使用ASP.NET Core 2.x,我曾经能够让Kestrel使用HTTPS/SSL,只需将其放入UseUrls()方法中即可:

var host = new WebHostBuilder()
    .UseUrls("http://localhost", "https://111.111.111.111")
    .UseKestrel()
    .Build();
Run Code Online (Sandbox Code Playgroud)

但现在我得到了例外:

 System.InvalidOperationException:
     HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
Run Code Online (Sandbox Code Playgroud)

如何配置Kestrel在ASP.NET Core 2.x中使用SSL?

ssl https kestrel-http-server asp.net-core-2.0

42
推荐指数
1
解决办法
4万
查看次数

如何使用AddMvcCore()实现"纯"ASP.NET Core Web API

我见过很多使用默认AddMvc()服务的ASP.NET Core Web API项目,但没有意识到AddMvcCore()由于对服务的控制,使用是一种优越的选择.

究竟如何实现通过使用ASP.NET核心的Web API AddMvcCore()它为什么好?

c# asp.net-core-mvc asp.net-core asp.net-core-webapi

34
推荐指数
1
解决办法
4838
查看次数

.NET CoreCLR,CoreRT,Roslyn和LLILC之间有什么区别

最近我开始阅读有关.NET重组细节的信息(主要是通过.NET Core github页面).它接缝他们创建了兄弟项目以支持更多平台.在阅读时我的印象是CoreCLRCoreRT是一个新的OpenSource版本的专有Roslyn编译器.CoreRT提供本机(AOT)编译.而LLILC是一种备选实现指挥LLVM框架.

任何人都可以从用户角度确认和描述这些项目的差异和目标吗?为什么有人会在未来使用Roslyn而不是CoreCLR?

.net clr roslyn coreclr corert

25
推荐指数
1
解决办法
8805
查看次数

JsonStringEnumConverter (System.Text.Json) 是否支持空值?

我正在将我的代码从 .NET Core 2.x 转移到 .NET Core 3.x(即使用本机库System.Text.Json)。在这样做时,我遇到了一些问题,因为以前Newtonsoft.Json对可空枚举的支持目前没有明确的迁移路径——看起来 .NET Core 3.x 不支持它?。

例如,使用Newtonsoft.Json,JSON 转换器支持可为空的枚举,如下所示:

public enum UserStatus
{
    NotConfirmed,
    Active,
    Deleted
}

public class User
{
    public string UserName { get; set; }

    [JsonConverter(typeof(StringEnumConverter))]  // using Newtonsoft.Json
    public UserStatus? Status { get; set; }       // Nullable Enum
}
Run Code Online (Sandbox Code Playgroud)

本机库的当前版本System.Text.Json,似乎不支持这一点。

我该如何解决这个问题?我无法迁移我的代码!

c# .net-core system.text.json

15
推荐指数
3
解决办法
1万
查看次数

使用CoreRT /另一个AOT编译.net核心应用程序

我正在ASP.NET CORE 1.0上构建REST API.在生产中,IMHO非常有用,不使用JIT,因为带有应用程序的docker容器正在向上和向下扩展,在CI期间反复重新部署,因此每个已部署容器的即时编译会导致可怕的滞后,LB健康检查死亡和其他痛苦.

在我阅读时,使用dotnet CLI的本机编译已停止.我尝试使用CoreRT进行构建,但没有运气(由于复杂性需求的详细信息).

由于这个问题非常抽象,我不提供示例代码或详细信息,所以一开始几乎没有问题:

  1. 我的假设是正确的 - 将提前编译解决问题,每个路径的首次执行缓慢 - 或者 - 是否还有其他任何解决方案?
  2. 如果是真的,目前可以从.NET Core构建"本机"应用程序(ubuntu x64目标)吗?
  3. 如果是的话,最佳做法是什么 - 我该怎么做?有没有人有这方面的经验?

(目标平台将是ubuntu-14.04-x64 docker镜像以及编译平台.出于开发目的,在OSX上编译它也很不错.)

先感谢您.

c# compilation .net-native .net-core corert

13
推荐指数
1
解决办法
5556
查看次数

如何更改.NET Core项目中`wwwroot`文件夹的图标?

在Visual Studio 2017中,当我想使用以下任一标准.NET Core项目模板从头创建ASP.NET Core Web应用程序时:

  • 控制台应用程序(.NET Core)
  • 类库(.NET Core)

这些项目模板; 显然不会包含该wwwroot文件夹.因此,当我将文件夹添加到我的项目时,它看起来像(并且表现得像)一个标准文件夹:

.NET Core Console应用程序

使用ASP.NET Core Web Application项目模板创建它时 ,该wwwroot文件夹如下所示:

ASP.NET核心Web应用程序

问题 - 外观(图标)

如何将wwwroot文件夹的图标更改为ASP.NET Core Web Application项目模板中的图标?


其他问题 - 行为(将文件复制到输出目录)
在标准.NET Core项目中,我必须将其添加到我的.csproj文件中:

<ItemGroup>
  <Content Include="wwwroot\**" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这样它就可以将我的所有文件从wwwroot文件夹复制到输出目录,类似于ASP.NET Core Web Application项目.我查看了ASP.NET核心Web应用程序的.csproj文件,但没有看到类似的东西.

我假设主要问题的答案也将为此提供答案,因为项目模板明显不同.我似乎无法在线找到资源来帮助我自己手动编辑.

提前致谢.

c# .net-core asp.net-core visual-studio-2017

12
推荐指数
1
解决办法
5209
查看次数

ASP.NET Core RazorPages强制AnchorTagHelper(asp-page)使用小写路由

我在ASP.NET Core v2.0中使用RazorPages,我想知道是否有人知道如何强制AnchorTagHelper使用小写?

例如,在我的.cshtml标记中,我将使用asp-page标记帮助程序获得以下锚标记:

<a asp-page="/contact-us">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出

// i want this 
<a href="/contact-us">Contact Us</a>

// i get this 
<a href="/Contact-us">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)

为了更好地说明为什么这对我的网络应用程序很重要,请想象一下你会在stackoverflow.com上看到的长网址.

https://stackoverflow.com/questions/anchortaghelper-asp-page-to-use-lowercase

                       -- VS --

https://stackoverflow.com/Questions/Anchortaghelper-asp-page-to-use-lowercase
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!


我看过这些其他参考文献,但没有运气:

c# asp.net-core razor-pages asp.net-core-mvc-2.0

7
推荐指数
3
解决办法
685
查看次数

最小的占用空间/裸机ASP.NET核心WebAPI

只是为了好玩,今天早些时候我的一位同事问我是否可以尝试制作一个使用ASP.NET Core回应请求的小型WebAPI.我能够在大约70行代码中完成WebAPI.一切都归功于ASP.NET Core令人惊叹!所以,这就是我到目前为止的结果.

代码

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using System;
using System.Linq;

namespace TinyWebApi
{
    class Program
    {
        static readonly IWebHost _host;
        static readonly string[] _urls = { "http://localhost:80" };

        static Program()
        {
            IConfiguration _configuration = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .Build();
            _host = BuildHost(new WebHostBuilder(), _configuration, _urls);
        }

        static void Main(string[] args)
        {
            _host.Run();
        }

        static IWebHost BuildHost(
            IWebHostBuilder builder, IConfiguration configuration, params string[] urls)
        {
            return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-webapi

4
推荐指数
1
解决办法
1268
查看次数

使用C#7的foreach声明中的空合并运算符

我正在看这个代码示例C# 7.0,我不确定引擎盖下发生了什么以及这个循环的性能.

foreach (var c in text ?? throw new ArgumentNullException(nameof(text)))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 条件语句是一次还是多次(每次迭代)?
  2. 新语法看起来不同,这样做有什么好处?

c# null-coalescing-operator c#-7.0

3
推荐指数
1
解决办法
909
查看次数

ConcurrentQueue ToList() 与 ToArray().ToList()

我不是 100% 的,所以我需要专家的意见。

ConcurrentQueue<object> queue = new ConcurrentQueue<object>();

List<object> listA = queue.ToArray().ToList();   // A
List<object> listB = queue.ToList();             // B
Run Code Online (Sandbox Code Playgroud)

我知道该ToArray()方法会复制一份(因为它是 内的一个内部方法ConcurrentQueue),但是ToList()直接调用该方法会做同样的事情吗?

简单地说,将代码从 A 重构到 B 是否安全?

c# linq concurrency

3
推荐指数
1
解决办法
2239
查看次数