小编Kik*_*sen的帖子

遇到致命错误。需要库“libhostpolicy.so”

我正在运行 dotnet core 2.0 控制台项目。尝试从 Docker 运行时遇到以下错误。

遇到致命错误。在“/app”中找不到执行应用程序所需的库“libhostpolicy.so”。

docker .net-core

27
推荐指数
4
解决办法
2万
查看次数

共享默认MVC控制器

目前我正在构建许多小型API.其中许多项目共享一些基本的控制器逻辑.有没有办法将它们添加到nuget包中,并在启动时使用它们?
例如.喜欢添加Mvc:

IApplicationBuilder app;    
....    

app.UseMvc;
app.UseBasicApiVersionController();
Run Code Online (Sandbox Code Playgroud)

我们的想法是在所有微服务中都有版本端点.
例如:
http:// url/version
返回{"version":"1.0.0"}
如何将其变为nuget包?
因此,所有开发人员只需添加1行代码即可将此端点添加到其微服务中?我们正在使用dotnet核心.
不要自己创建nuget包:)

我对入门的猜测类似于:

public static IApplicationBuilder UseBasicApiVersionController(this IApplicationBuilder app)
    {
      if (app == null)
        throw new ArgumentNullException("app");

      ..... // What should I do?

      return app;
    }
Run Code Online (Sandbox Code Playgroud)

*编辑:
如果您将一个控制器添加到nuget包项目,它将被自动检测.但这不是我想要的功能.
我可能有10个需要该控制器的服务.虽然有1-2个服务只需要其他版本控制逻辑.例如.面向App的客户不应该有"/ version"端点.
这就是为什么我想在启动时使用app.UseBasicApiVersionController();

.net asp.net-mvc .net-core

6
推荐指数
1
解决办法
190
查看次数

System.PlatformNotSupportedException:'此平台不支持此操作.' 将ServiceStack升级到.netcore 2.0时

我们正在使用ServiceStack(.netcore)作为我们的Web服务层,在一个尚未上线的开源项目中.我们计划迁移到.netcore2.0.我们于11月17日从https://github.com/ServiceStack/ServiceStack下载了servicestacks的master分支进行测试.但是由于以下异常我们陷入困境,servicestack项目没有启动.

我们对此做了一些研究,发现.Net Core没有toXmlString()和fromXmlString方法.请参阅https://github.com/dotnet/core/issues/874https://github.com/dotnet/corefx/issues/23686.

需要来自servicestack社区的帮助.

$exception {System.PlatformNotSupportedException: Operation is not supported on this platform. at System.Security.Cryptography.RSA.FromXmlString(String xmlString) at ServiceStack.RsaUtils.ToPrivateRSAParameters(String privateKeyXml) in F:\ExpressBase\ExpressBase.Core\ServiceStack.Core\ServiceStack.Client\CryptUtils.cs:line 85 at ServiceStack.Auth.JwtAuthProviderReader.set_PrivateKeyXml(String value) in F:\ExpressBase\ExpressBase.Core\ServiceStack.Core\ServiceStack\Auth\JwtAuthProviderReader.cs:line 148 at ExpressBase.ServiceStack.AppHost.Configure(Container container) in F:\ExpressBase\ExpressBase.Core\ExpressBase.ServiceStack\Startup.cs:line 94 at ServiceStack.ServiceStackHost.Init() in F:\ExpressBase\ExpressBase.Core\ServiceStack.Core\ServiceStack\ServiceStackHost.cs:line 200 at ServiceStack.NetCoreAppHostExtensions.UseServiceStack(IApplicationBuilder app, AppHostBase appHost) in F:\ExpressBase\ExpressBase.Core\ServiceStack.Core\ServiceStack\AppHostBase.NetCore.cs:line 224 at ExpressBase.ServiceStack.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in F:\ExpressBase\ExpressBase.Core\ExpressBase.ServiceStack\Startup.cs:line 74} System.PlatformNotSupportedException

这是我们的Startup.cs中生成异常的行.

var jwtprovider = new MyJwtAuthProvider(AppSettings)
            {
                HashAlgorithm = "RS256",
                PrivateKeyXml = EbLiveSettings.PrivateKeyXml,
                PublicKeyXml = EbLiveSettings.PublicKeyXml, …
Run Code Online (Sandbox Code Playgroud)

servicestack .net-core asp.net-core-2.0

6
推荐指数
1
解决办法
6132
查看次数

将 Letsencrypt SSL 添加到 nginx 后 SignalR 失败

我为 SignalR 创建了一个小型演示项目。当我在没有 SSL 的情况下在 Nginx 后面发布我的项目时,这一切都奏效了。但是在我运行 Certbot 并将 SSL 添加到站点后,所有 SignalR 集线器/WebSockets 都停止工作。该网站可以在这里找到:

https://app.topswagcode.com

signalr.js:5053 WebSocket connection to 'wss://app.topswagcode.com/chatHub?id=v_UmTZyB9v962n44Wf2-Kg' failed: 
(anonymous) @ signalr.js:5053
(anonymous) @ signalr.js:5034
step @ signalr.js:4995
(anonymous) @ signalr.js:4976
(anonymous) @ signalr.js:4970
__awaiter @ signalr.js:4966
WebSocketTransport.connect @ signalr.js:5016
HttpConnection.startTransport @ signalr.js:4149
(anonymous) @ signalr.js:4099
step @ signalr.js:3710
(anonymous) @ signalr.js:3691
(anonymous) @ signalr.js:3685
__awaiter @ signalr.js:3681
HttpConnection.createTransport @ signalr.js:4052
(anonymous) @ signalr.js:3970
step @ signalr.js:3710
(anonymous) @ signalr.js:3691
fulfilled @ signalr.js:3682
signalr.js:2150 [2021-06-11T06:43:20.004Z] Error: Failed to …
Run Code Online (Sandbox Code Playgroud)

nginx ssl-certificate signalr asp.net-core certbot

6
推荐指数
1
解决办法
107
查看次数

在 EntityFramework Core 中配置 SQL 连接池

TLDR: 有没有办法控制 AspNet Core / EF CORE Sql 连接中的连接池。我需要类似的东西:

pool: {
    min: 0,
    max: 1,
    idle: 10000
}  
Run Code Online (Sandbox Code Playgroud)

问题:

我有一个使用 AspNetCore 3.1 构建的无服务器 api,使用 EF core 进行数据访问。当服务器负载不重时,一切正常。但是,当我们收到适量的请求时,我们就会耗尽与 SQL 服务器的连接。因为他们没有被释放。数据库没有压力。CPU / RAM / IO 仍然处于“睡眠”状态,并且可以轻松满足请求。

花了一些时间阅读这个问题后,我找到了 2 个解决方案

  • A) 升级数据库以允许更多连接
  • B) 减少连接和最小/最大连接的空闲时间

我不太喜欢选项 A,因为我们已经有一个很大的实例,对于它的目的来说已经太大了。真的不需要浪费更多的 CPU/RAM

所以我唯一真正的选择是尝试访问连接池。

我的 Google 魔力并没有真正让我走得太远,而且我在公共规范中找不到任何东西。我发现的只是很久以前博客文章中的老式 ADO.NET。还有一些博客文章只是指出 EF Core 中的连接池很神奇,不用担心。直到现在在无服务器环境中我才担心这个问题。

如果我们不得不放弃 EF Core,我们真的会很讨厌,因为这将是应用程序的重大重写。

entity-framework-core .net-core

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

无法访问我的Docker DotNet核心网站

我陷入了死胡同.我有一个dotnet核心1.0.0应用程序我正在尝试启动和运行.它从linux和windows工作得很好.现在我想把它变成码头工人.我做了这个docker文件:

FROM microsoft/dotnet:1.0.0-preview2-sdk

COPY . /app
WORKDIR /app/app
RUN ["dotnet", "restore"]

ENTRYPOINT ["dotnet", "run"] 
Run Code Online (Sandbox Code Playgroud)

它只是将代码复制到docker映像中的app文件夹并恢复依赖关系,然后运行它.当我尝试运行它时,它会启动,因为一切正常,打印的内容与Windows或Linux启动时相同.

Docker控制台

用于运行项目的命令:

docker run --name dotNetWeb -p 8080:8080 kiksen1987/dotnetcore
Run Code Online (Sandbox Code Playgroud)

链接到代码:https: //github.com/kiksen1987/dotnetcore

链接到Docker镜像:https: //hub.docker.com/r/kiksen1987/dotnetcore/

我真的不知道出了什么问题.我或多或少采用了与99%的其他项目相同的方法.

任何改善这个问题的反馈都会很好:)

.net docker dockerfile

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

Outlook 365 Rest API - 受众声明值无效

我正在开发一个当前项目,我们已经使用Identity Server进行身份验证.在这里,我们使用Access令牌访问microsoft Graph API以获取会议,个人资料图片和其他内容.

现在,我们希望与新的Outlook 365 API进行集成,以便在将来的写入任务中进行读取.

我正在尝试使用已存在的accesstoken从Outlook restapi获取Outlook任务:

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/17e18230-55e1-4f60-8262-5c67e2b2ab11/",
  "iat": 1145153145,
  "nbf": 1491225024,
  "exp": 1491258924,
  "acr": "1",
  "aio": "QSQA8/8DAFFFInSl+iIfvSXhA95NqTYRmKugpaLdvffNkba0L8N5x0U=",
  "amr": [
    "pwd"
  ],
  "app_displayname": "AwesomeApp.Dev",
  "appid": "0c2fgc75-f2ee-fas5-ae9f-fasd2s5d523fs",
  "appidacr": "1",
  "family_name": "Jesper Krægpøth Ryder",
  "given_name": "Joshua",
  "ipaddr": "208.67.222.222",
  "name": "Joshua Jesper Krægpøth Ryder",
  "oid": "a4586g1-d0215-3226-ar05-125463gasrqw5",
  "platf": "3",
  "puid": "654wf84yu3s1g6",
  "scp": "Calendars.Read Calendars.Read.Shared Calendars.ReadWrite Directory.Read.All Files.ReadWrite Group.Read.All Mail.ReadWrite Mail.Send Tasks.Read User.Read User.ReadBasic.All User.ReadWrite",
  "sub": "0s_x0JhaNb1QLpIM2Hldx7pSVkrpTgXKe4QPXXiRguQ",
  "tid": "15e18430-54e9-4f60-8821-5c85e2b2ab77",
  "unique_name": "jor@awesome.com",
  "upn": "jor@awesome.com",
  "uti": "65a2gasdrfasda_fasfa54153",
  "ver": "1.0"
}
Run Code Online (Sandbox Code Playgroud)

https://outlook.office.com/api/v2.0/me/tasks …

.net c# .net-core outlook-restapi

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

nginx: [emerg] /etc/nginx/sites-enabled/default:1 中的未知指令“server”

我正在尝试将 Nginx 设置到我的 ASPNET Core WebApi。但我总是遇到错误。

当我尝试检查我的配置时,我得到:

ubuntu@ip-172-26-12-97:~$ sudo nginx -t
nginx: [emerg] unknown directive "server" in /etc/nginx/sites-enabled/default:1
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

我尝试查看以下问题: nginx: [emerg] "http" 指令不允许在 /etc/nginx/sites-enabled/default:1

nginx: [emerg] 未知指令 " " in /etc/ nginx/sites-enabled/example.com:3

我的默认配置如下所示:

server {
 listen 80;
 location / {
 proxy_pass http://localhost:5000;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection keep-alive;
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 }
}
Run Code Online (Sandbox Code Playgroud)

安装 Nginx 并转到端口 80 上的默认 Nginx 服务器工作正常。但是当我开始上传自己的配置并进行更改时,它就崩溃了。

脚步:

sudo chown …
Run Code Online (Sandbox Code Playgroud)

nginx asp.net-core

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

使用 nginx 托管在 docker 中时 Blazor WASM 样式丢失

我有一个奇怪的问题,当我尝试使用 Nginx 托管我的 blazor WASM 项目时,我的样式被破坏了。我尝试遵循几个不同的指南,它们很相似并且对我来说有同样的问题。

我这里有代码: https: //github.com/TopSwagCode/Dotnet.IdentityServer/tree/master/src/BlazorClient

当我在本地调试或在本地发布并从 dotnetserve 提供服务时,我得到以下信息:

在此输入图像描述

但是当我发布并尝试使用 Nginx 在 docker 中运行它时,我得到了这个:

在此输入图像描述

我的按钮仍然在那里,但我看不到它们,因为它们是白色的。

我的 dockerfile 非常简单:

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app
COPY . ./
RUN dotnet publish -c Release -o output
FROM nginx:alpine
WORKDIR /var/www/web
COPY --from=build-env /app/output/wwwroot .
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)

我的 nginx 配置

events { }
http {
    include mime.types;
    types {
        application/wasm wasm;
    }

    server {
        listen 80;

        # Here, we set the location for Nginx to serve the …
Run Code Online (Sandbox Code Playgroud)

nginx docker .net-core blazor-webassembly

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