标签: .net-core

为什么要避免在库代码中使用 Console.WriteLine?

在编写供其他 C# 应用程序(某些 Web 应用程序、某些 AWS lambdas)使用的库时,将消息写入控制台有哪些缺点?如果开发人员有权访问日志,这些消息将不常见且操作不必要,但将有助于调试不常见的场景。

System.Console 上文档

不要使用 Console 类在无人参与的应用程序(如服务器应用程序)中显示输出。调用 Console.Write 和 Console.WriteLine 等方法在 GUI 应用程序中无效。

但没有解释为什么。

.net c# .net-core

0
推荐指数
1
解决办法
208
查看次数

Azure DevOps dotnet build 无权访问 nuget 包

在 Azure DevOps 中,我有我的公司nuget存储库。我创建了一些新的 nuget 包,并将它们包含在我的项目中。在本地,项目运行良好。

当我dotnet build在 DevOps 上运行时出现错误,因为对 nuget 存储库进行了未经授权的访问。

在此处输入图片说明

[错误]C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5):错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/的服务索引 _packaging/vs.com/nuget/v3/index.json

响应状态代码不表示成功:401(未授权)。

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/_packaging/vs的服务索引 .com/nuget/v3/index.json。[d:\a\1\s\Payments\Payments.csproj]

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:响应状态代码不表示成功:401(未经授权)。[d:\a\1\s\PiP.Payments.Stripe\PiP.Payments.csproj]

构建失败。

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/_packaging/vs的服务索引 .com/nuget/v3/index.json。[d:\a\1\s\PiP.Payments.Stripe\PiP.Payments.csproj]

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:响应状态代码不表示成功:401(未经授权)。

c# nuget .net-core azure-devops

0
推荐指数
1
解决办法
760
查看次数

如何向 Alpine Linux 添加边缘/测试包?

我有一个 Azure Linux WebApp 使用 docker-compose 来运行三个容器:Asp.Net Core 3.1 WebApp、Nginx 作为反向代理和一个 Asp.Net Core WebJob (SKD 3) 来生成 PDF 报告。WebApp 位于https://pdf.ricardogaefke.com

问题是:生成的 PDF 有一个带有在线检查链接的 QrCode,我在运行 WebJob 时遇到问题(“libgdiplus未找到),我尝试安装这个libgdiplus 包。这个问题与System.Drawing命名空间有关。

问题是该软件包处于边缘/测试版本中,无法使用apk add命令进行安装。我怎样才能安装这个包?

docker azure-webjobs .net-core alpine-linux

0
推荐指数
1
解决办法
2356
查看次数

即使指定了 JWT 身份验证,也未指定任何身份验证方案错误

我是 AzureAD 身份验证的新手。我在 startup.cs 中使用以下设置设置了我的 Web API

        services.AddAuthentication(sharedopt => sharedopt.DefaultScheme = JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer("AzureAd", options =>
        {
            options.Audience = Configuration.GetValue<string>("AzureAd:Audience");
            options.Authority = Configuration.GetValue<string>("AzureAd:Instance")
            + Configuration.GetValue<string>("AzureAd:TenantId");
            options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters()
            {
                ValidIssuer = Configuration.GetValue<string>("AzureAd:Issuer"),
                ValidAudience = Configuration.GetValue<string>("AzureAd:Audience")
            };

        });
Run Code Online (Sandbox Code Playgroud)

我希望我的客户端应用程序 (Angular) 将在其请求中附加 Authorization 标头,因此它可以访问 API

但是当我执行 Web API 并尝试使用授权打开任何 API 时,它会触发此错误

InvalidOperationException: 未指定 authenticationScheme,也未找到 DefaultChallengeScheme。可以使用 AddAuthentication(string defaultScheme) 或 AddAuthentication(Action configureOptions) 设置默认方案。

我已经指定了 JWTBearerDefaults.AuthenticationScheme。仍然为什么它不接受?

c# jwt asp.net-web-api azure-active-directory .net-core

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

如何在没有 Visual Studio 的情况下在 CLI 项目中添加 .dll 文件?

我删除了 Visual Studio,但我喜欢 c#。我从dotnet 官方网站下载了 dotnet并安装了它。然后我写在命令行dotnet new console和所有工作,dotnet run工作。然后我创建其他文件夹并在那里写入dotnet new classlib(是 .dll)并且它工作。但我不知道如何将我的 .dll 文件添加到我的项目中。怎么做?

c# .net-core dotnet-cli

0
推荐指数
1
解决办法
75
查看次数

Task.Run(job) 和 job() 有什么不同;等待 Task.CompleteTask?

我想使同步功能异步

public JobSync()
{
 // a lot of logic
}
Run Code Online (Sandbox Code Playgroud)

两个都

public async JobAsync()
{
 JobSync()
 await Task.CompleteTask;
}
Run Code Online (Sandbox Code Playgroud)

Task.Run(()=>JobSync())
Run Code Online (Sandbox Code Playgroud)

作品,

但是两种方式有什么区别吗?

.net c# async-await .net-core

0
推荐指数
1
解决办法
111
查看次数

为什么 asp .net core 不在异步方法中记录异常?

我有一个 .asp 网络核心项目,它async在 Configure 方法中运行一些永无止境的任务。在注意到这些方法中的异常没有记录到控制台之后。我只是做了一个小测试。像这样的东西:

public async void Configure(IApplicationBuilder app, IWebHostEnvironment env, ApplicationDbContext context)

{
        try
        {
            Task.Run(async () => { throw new Exception("My exception"); });
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }
}
Run Code Online (Sandbox Code Playgroud)

为什么不在async方法中记录这些异常?如果我只是在配置中抛出异常,它会毫无问题地抛出并记录到控制台。

c# exception .net-core asp.net-core

0
推荐指数
1
解决办法
122
查看次数

实体框架在没有 ToListAsync() 的情况下使用 await

以下代码有效。

employees.AddRange(from e in DbContext.Employees
                   select new EmployeeSummaryModel
                   {
                       Name = e.Name,
                       Email = e.Email
                   });
Run Code Online (Sandbox Code Playgroud)

但是我将如何重写此查询以使用await?请注意,我不想使用,ToListAsync()因为这会不必要地创建第二个列表?

c# entity-framework async-await entity-framework-core .net-core

0
推荐指数
1
解决办法
413
查看次数

请求匹配 .NET Core 上的多个端点

我在 .NET Core 项目中使用 OpenAPI (Swagger),当使用多个具有类似获取请求的方法时,我遇到“Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个端点”。运行时出错。我查看了 web 和 SO 上的几个页面,并尝试应用诸如请求匹配多个端点之类的解决方法,但为什么呢?,但这并不能解决问题。以下是我使用的 API 方法和路由定义。

[Route("get", Name="get")]
public IEnumerable<DemoDto> Get()
{
    //
}

[Route("get/{id}", Name="getById")]
public DemoDto GetById(int id)
{
    //
}

[Route("get/{query}", Name="getWithPagination")]
public IEnumerable<DemoDto> GetWithPagination(DemoQuery query)
{
    //
}
Run Code Online (Sandbox Code Playgroud)

我使用Name财产来解决问题但没有解决。有什么想法可以改变路线以区分Get()GetWithPagination()吗?

c# api rest .net-core webapi

0
推荐指数
2
解决办法
2851
查看次数

如何修复 Blazor WASM 内存访问越界错误?

启动了一个新的 Blazor WebAssembly 项目(Windows 10,Visual Studio 2019),尝试从服务器端通过 HttpClient 获取一个简单的列表。

错误:

00755c3a:0xa3a0 Uncaught (in promise) RuntimeError: memory access out of bounds
    at malloc (<anonymous>:wasm-function[359]:0xa3a0)
    at monoeg_malloc (<anonymous>:wasm-function[161]:0x3c71)
    at stack_frag_new (<anonymous>:wasm-function[2019]:0x59758)
    at add_frag (<anonymous>:wasm-function[1430]:0x3ccf2)
    at interp_exec_method (<anonymous>:wasm-function[1120]:0x2f609)
    at interp_runtime_invoke (<anonymous>:wasm-function[5655]:0xf7391)
    at mono_jit_runtime_invoke (<anonymous>:wasm-function[5109]:0xddb3d)
    at do_runtime_invoke (<anonymous>:wasm-function[1410]:0x3ba85)
    at mono_runtime_try_invoke (<anonymous>:wasm-function[418]:0xcfdb)
at mono_runtime_invoke (<anonymous>:wasm-function[1610]:0x44b39)
Run Code Online (Sandbox Code Playgroud)

服务器端(正确返回):

    [HttpGet]
    public async Task<IEnumerable<UserDetailsRM>> Get()
    {
        var users = await UserService.GetUsers();
        return users;
    }
Run Code Online (Sandbox Code Playgroud)

客户端:尽管得到了结果,但不渲染任何东西。

<div class="userListWrapper">
        @if (Users != null)
        {
            <table class="table table-borderless" style="font-size:12px; font-family:arial; height: 
                500px; …
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core blazor blazor-webassembly

0
推荐指数
1
解决办法
1975
查看次数