小编Muh*_*eed的帖子

在Azure Active Directory中删除应用程序的AppRole

从应用程序清单中删除AppRole会产生400错误请求,并显示错误消息

除非先禁用属性值,否则不能将其删除。

当我将isEnabled属性设置为false并单击保存时,通过查看浏览器开发人员工具,可以得到200 OK的成功保存:

之前

重新加载“编辑清单”屏幕后,该isEnabled属性仍然true保持不变,如果您在浏览器开发人员工具中查看PUT响应,则该属性也将返回true

后

如何删除一个appRole,而不必删除并重新创建整个应用程序?

更新资料

我提出了以下错误

azure azure-active-directory azure-ad-graph-api azure-ad-powershell-v2

5
推荐指数
3
解决办法
3525
查看次数

在Docker中运行ASP.NET Core App作为自定义用户运行

我有一个ASP.NET应用程序的核心连接到使用数据库Integrated Security=True连接字符串中,从而使运行该应用程序的用户的凭据用于连接到数据库,这样我就不必添加用户名和密码User Id=username;Password=password在连接字符串.

如何使用我的域中的用户帐户运行上述应用程序的Docker容器.这是我能做的事情吗?如果是这样,它仍然是推荐的方法吗?这似乎可以使用Windows容器但是linux呢?

connection-string runas integrated-security docker asp.net-core

5
推荐指数
1
解决办法
568
查看次数

如何使用Docker Swarm设置最小容器需求

在Docker Swarm中,您可以设置最大系统要求,如下所示:

my-service
  image: hello-world
  deploy:
    resources:
      limits:
        cpus: '2'
        memory: 4GB
Run Code Online (Sandbox Code Playgroud)

我有一个容器,其最低系统要求是2个CPU内核和4GB RAM,这是我的Docker Swarm中节点的确切大小.这意味着当此容器运行时,它必须是该节点上运行的唯一容器.

但是,当我将容器与其他容器一起运行时,其他容器将放置在同一节点上.如何确保Docker为此容器提供最低级别的CPU和RAM?

更新

reservations按照@yamenk的建议添加了,但是我仍然在同一节点上启动其他容器,这会导致我试图保护的容器出现性能问题:

my-service
  image: hello-world
  deploy:
    resources:
      reservations:
        cpus: '2'
        memory: 4GB
Run Code Online (Sandbox Code Playgroud)

system-requirements docker docker-compose docker-swarm

5
推荐指数
1
解决办法
1527
查看次数

如何提高 C# 对象映射代码的性能

如何在保持公共接口的同时进一步提高以下代码的性能:

public interface IMapper<in TSource, in TDestination>
{
    void Map(TSource source, TDestination destination);
}

public static TDestination Map<TSource, TDestination>(
    this IMapper<TSource, TDestination> translator,
    TSource source)
    where TDestination : new()
{
    var destination = new TDestination();
    translator.Map(source, destination);
    return destination;
}

public static List<TDestination> MapList<TSource, TDestination>(
    this IMapper<TSource, TDestination> translator,
    List<TSource> source)
    where TDestination : new()
{
    var destinationCollection = new List<TDestination>(source.Count);
    foreach (var sourceItem in source)
    {
        var destinationItem = translator.Map(sourceItem);
        destinationCollection.Add(destinationItem);
    }
    return destinationCollection;
}
Run Code Online (Sandbox Code Playgroud)

示例用法

public class MapFrom …
Run Code Online (Sandbox Code Playgroud)

.net c# performance allocation unchecked

5
推荐指数
1
解决办法
3232
查看次数

使用带有MapSpaFallbackRoute的命名路由

我在我的ASP.NET Core SPA中使用命名路由,如下所示:

[HttpGet("", Name = HomeControllerRouteName.GetIndex)]
public IActionResult Index() => this.View();
Run Code Online (Sandbox Code Playgroud)

在我Startup.cs使用该MapSpaFallbackRoute方法回退到单页面应用程序以显示404错误页面.它目前使用控制器和操作名称来确定后备路由,如下所示:

application.UseMvc(
    routes =>
    {
        routes.MapSpaFallbackRoute(
            name: "spa-fallback",
            defaults: new { controller = "Home", action = "Index" });
    });
Run Code Online (Sandbox Code Playgroud)

Startup.cs为了保持一致性,我想在命令路由中使用命名路由.怎么能实现这一目标?

asp.net asp.net-mvc-routing single-page-application asp.net-core-mvc asp.net-core

5
推荐指数
1
解决办法
458
查看次数

为什么 ASP.NET Core Multi-Stage Dockerfile 使用 4 Stages

当您在 ASP.NET Core 站点上的 Visual Studio 中单击“添加 Docker 支持”时,这是默认的多阶段 Dockerfile。

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY WebApplication1.sln ./
COPY WebApplication1/WebApplication1.csproj WebApplication1/
RUN dotnet restore
COPY . .
WORKDIR /src/WebApplication1
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
Run Code Online (Sandbox Code Playgroud)

为什么他们选择使用四个阶段,开始和结束base阶段。另外,为什么要publish使用相同的build基本图像创建舞台。为什么 Dockerfile 看起来不像三个阶段:

FROM microsoft/aspnetcore-build:2.0 …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile asp.net-core docker-multi-stage-build

5
推荐指数
1
解决办法
808
查看次数

如何将 Cloudflare 1.1.1.1 与 Kubernetes DNS 结合使用

我想在 Kubernetes 中使用 Cloudflare 的1.1.1.1 和 1.0.0.1名称服务器,以及DNS over TLS。它看起来像我可以用做核心的DNS。我需要以某种方式设置以下内容:

  • IPv4:1.1.1.11.0.0.1
  • IPv6:2606:4700:4700::11112606:4700:4700::1001
  • TLS 服务器名称: tls.cloudflare-dns.com

我应该是什么ConfigMap样子?我已经在下面开始了:

apiVersion: v1
kind: ConfigMap
data:
  upstreamNameservers: |
    ["1.1.1.1", "1.0.0.1"]
Run Code Online (Sandbox Code Playgroud)

dns nameservers cloudflare kubernetes coredns

5
推荐指数
1
解决办法
730
查看次数

IAsyncDisposable 有参考实现吗?

对于IDisposable,我经常使用抽象基类,因为实现它非常困难。主要是因为您可以使用该接口来处理托管和非托管引用,并且每个引用的处理方式都不同。

public abstract class Disposable : IDisposable
{
    ~Disposable() => this.Dispose(false);

    public bool IsDisposed { get; private set; }

    public void Dispose()
    {
        this.Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void DisposeManaged() {}
    protected virtual void DisposeUnmanaged() {}

    protected void ThrowIfDisposed()
    {
        if (this.IsDisposed)
        {
            throw new ObjectDisposedException(this.GetType().Name);
        }
    }

    private void Dispose(bool disposing)
    {
        if (!this.IsDisposed)
        {
            if (disposing)
            {
                this.DisposeManaged();
            }

            this.DisposeUnmanaged();
            this.IsDisposed = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用IAsyncDisposable,我找不到参考实现。另外,我相信它只处理托管资源,主要是因为它太新了,并且没有需要异步处理的非托管资源。这样对吗?如果是这样,那么实现是微不足道的吗?

.net c# idisposable .net-core

5
推荐指数
1
解决办法
1429
查看次数

如何在 ASP.NET Core 3 和 Swashbuckle 5 中为问题详细信息编写 ISchemaFilter?

我将 ASP.NET Core 3.0 与 Swashbuckle 5 一起使用。我正在尝试在 ASP.NET Core 3.0 中编写一个ISchemaFilterfor ProblemDetailsProblemDetails返回许多不同的状态代码,例如 400、401、403、406、415、500 等。我想提供一个ProblemDetails取决于状态代码的不同示例。我怎样才能做到这一点?这是我为开始编写的一些代码,只需要填写空白:

public class ProblemDetailsSchemaFilter : ISchemaFilter
{
    private static readonly OpenApiObject Status400ProblemDetails = new OpenApiObject()
    {
        ["type"] = new OpenApiString("https://tools.ietf.org/html/rfc7231#section-6.5.1"),
        ["title"] = new OpenApiString("Bad Request"),
        ["status"] = new OpenApiInteger(StatusCodes.Status400BadRequest),
        ["traceId"] = new OpenApiString("00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00"),
        ["errors"] = new OpenApiObject()
        {
            ["property1"] = new OpenApiArray()
            {
                new OpenApiString("The property field is required"),
            },
        },
    };

    private static readonly OpenApiObject Status401ProblemDetails = new …
Run Code Online (Sandbox Code Playgroud)

swagger swashbuckle asp.net-core openapi openapi.net

5
推荐指数
1
解决办法
1641
查看次数

单元测试公共签名的 .NET Core/框架库

我有一个针对 .NET Core 和 .NET Framework 进行编译的 NuGet 包库项目。它还使用新的公共签名

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup Label="Build">
    <TargetFrameworks>netstandard2.0;net472</TargetFrameworks>
  </PropertyGroup>

  <PropertyGroup Label="Signing">
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>../../Key.snk</AssemblyOriginatorKeyFile>
    <PublicSign>true</PublicSign>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

我有一个 xUnit 测试项目,使用它也可以交叉编译到 .NET Core 和 .NET Framework。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup Label="Build">
    <TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup Label="Package References">
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
  </ItemGroup>

  <ItemGroup Label="Project References">
    <ProjectReference Include="..\..\Source\Foo\Foo.csproj" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

当我在此项目中运行测试时,.NET Core 测试运行成功,但 .NET Framework 测试运行失败,并显示:

System.IO.FileLoadException:无法加载文件或程序集“Foo,Version=0.0.1.0,Culture=neutral,PublicKeyToken=fc5550082a9c642c”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者已延迟签名但未使用正确的私钥完全签名。(HRESULT 异常:0x80131045)

我怎样才能让他们都工作?

.net c# strongname xunit .net-core

5
推荐指数
1
解决办法
246
查看次数