相关疑难解决方法(0)

使用appsettings.json配置Kestrel监听端口Dotnet core 2预览2

根据我的理解,为ASP Dotnet Core 2预览1/2设置监听端口的正确方法是在appsettings.json中创建一个Kestrel部分,格式如下:

"Kestrel": {
    "EndPoints": { //Could also be Endpoints, it's a bit unclear
        "Http": {
        "Address": "127.0.0.1",
    "Port": 9001 //the port you want Kestrel to run on
},
Run Code Online (Sandbox Code Playgroud)

我试图在Debian机器上设置示例webapp,但是当我启动应用程序时,它写出应用程序在端口5000上列出,默认端口..

我知道appsettings.json被读取,因为当我将日志记录级别更改为Trace时,我在启动时获得更多信息,包括没有找到端点,应用程序将使用标准5000端口.

我试图在Github上搜索aspnet源代码,我可以找到一个从配置中读取Kestrel部分的区域(https://github.com/aspnet/Identity/blob/e38759b8a2de1b7a4a1c19462e40214b43c1cf3b/samples/IdentityOIDCWebApplicationSample/MetaPackage/KestrelServerOptionsSetup .cs),但你可以看到它看起来像一个示例项目.

我缺少什么,这不是在ASP Dotnet核心2中配置Kestrel的标准方法吗?

kestrel .net-core

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

在 Xamarin Android 中接受自签名证书

我有一个Xamarin Forms项目,在 MainPage.xaml.cs 文件中我想向我的服务器执行请求。服务器是用ASP.NET Core 2 编写的,并使用自签名证书运行。

购买证书并不能解决我的问题,因为客户不希望它和应用程序只在局域网中运行。

在我的 MainPage.xaml.cs 文件中,Http 请求如下所示:

HttpClient m_Client = new HttpClient();
var uri = new Uri(myURL);

var response = await m_Client.GetAsync(uri);

if (response.IsSuccessStatusCode)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。如果我在Android上运行应用程序并尝试执行请求,Android 会抛出 SSL 异常,因为找不到我的证书的 CA。

如何使用自签名证书与我的服务器通信?

我查了一下问题并找到了很多解决方案,例如:

ServicePointManager
        .ServerCertificateValidationCallback +=
        (sender, cert, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)

如果您将此代码添加到 Android 项目中的 MainActivity.cs 文件中,它应该接受所有证书。但这对我不起作用。似乎这个方法永远不会被调用。

对于如何进行沟通有什么建议吗?

问候

ssl httpclient xamarin.android xamarin

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

如何在特定端口运行 asp.net core 2.1 发布应用程序?

环境:Ubuntu 18.04下的ASP.NET Core 2.1

默认情况下,新创建的 asp.net 核心应用程序运行在http://localhost:5000并自动重定向到https://localhost:5001

由于我打算在 nginx 下运行我的应用程序(并使用 nginx 的 SSL 功能),我想在没有 https 的情况下在特定端口(例如 6000)上运行我发布的应用程序。

Post ASP.NET Core 2.1 + Kestrel (How to disable HTTPS)解释说必须简单地使用“--urls”参数来实现这一点。

这是我尝试过的:

$ dotnet publish --configuration Release
$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
Run Code Online (Sandbox Code Playgroud)

该应用程序现在开始侦听http://localhost:5000https://localhost:5001。当我浏览到http://localhost:5000 时,它会自动重定向到https://localhost:5001。到现在为止还挺好。

现在,我尝试在端口 6000 上运行:

$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
     --urls="http://localhost:6000"
Run Code Online (Sandbox Code Playgroud)

从终端窗口中的消息来看,该应用程序似乎开始在http://localhost:6000 上侦听。但是,浏览到此 url 会导致“无法访问此站点”错误。

我什至试过:

$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
     --urls="http://localhost:6000,https://localhost:6001"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到一条错误消息:“只能使用 IApplicationBuilder.UsePathBase() 配置路径库”。

有人可以告诉我如何在指定端口简单地运行应用程序吗?我希望我不需要硬编码端口号。

asp.net-core

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

为什么我运行 WebApp 时有两个端口

我所做的只是dotnet new web命令。

这是我运行时报告的内容:

 dotnet run
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么它说现在正在监听本地主机端口 5000 和 5001 ?当我进入浏览器时,我的本地主机确实可以在5001上运行,但不能在 5000 上运行。所以我很想了解该命令行输出。

asp.net-core

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