相关疑难解决方法(0)

如何指定托管ASP.NET Core应用程序的端口?

当使用WebHostBuilder在一个Main入口点,我怎么可以指定它绑定到端口?

默认情况下,它使用5000.

请注意,此问题特定于新的ASP.NET Core API(当前位于1.0.0-RC2中).

.net asp.net-core

137
推荐指数
11
解决办法
11万
查看次数

如何运行VS 2017生成的docker图像

Docker noob在这里......

如何正确运行由Visual Studio 2017在命令行生成的Asp.Net CORE应用程序的docker镜像?

docker run -it -d -p 80:32769 myappimage
Run Code Online (Sandbox Code Playgroud)

似乎没有正常工作(图像运行,但我无法浏览到我的应用程序)

注意:我只是使用默认模板在Studio中创建了一个示例ASP.Net Core Web App,并添加了Docker支持(通过单击"添加Docker支持"复选框).当您执行此操作时,Studio会添加dockerfile和一些docker-compose文件.

当Visual Studio"运行"图像时(通过按F5) - 我可以成功浏览到我的应用程序(通过" http:// localhost:32789 "或类似的主机端口.容器内的应用程序位于端口80上).但我无法弄清楚在命令行自己运行它的命令.

Studio添加到项目中的标准Dockerfile是......

FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "WebApplication2.dll"]
Run Code Online (Sandbox Code Playgroud)

docker asp.net-core visual-studio-2017

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

如何在启动类中配置Kestrel URL

我试图找出修改kestrel 从Startup类构造函数侦听的URL的正确方法.

更新:除了下面的答案,我已经明白Startup类不是以我想象的方式配置Kestrel.我原以为Startup会创建一个单独的应用程序范围的配置对象,它可以通过约定来定位,但事实并非如此.正如@Tseng所指出的,应用程序和托管的配置是另外一个问题.链接的答案和接受的答案提供了工作示例.

我在Vagrant中创建了一个全新的Ubuntu 14盒子,并根据Microsoft当前的说明安装了ASP.NET Core 1.1:https://www.microsoft.com/net/core#linuxubuntu

我跑了:

  • dotnet new -t web
  • dotnet恢复
  • dotnet运行

默认情况下,它侦听http:// localhost:5000.在Program.cs中,我可以调用app.UseUrls("http://*:5001),这可以改变URL和端口.

我真正想要的是通过在Startup类中添加一个新的JSON设置文件来按照惯例更改URL,所以我按照示例创建了一个hosting.JSON文件(注意:我已经尝试过"server.urls"和"网址"作为关键).

{
  urls: "http://*:5001"
}
Run Code Online (Sandbox Code Playgroud)

在Startup.cs下面添加appsettings.json文件的默认行我添加了.AddJsonFile("hosting.json",可选:false); (可选:false以确保它正在拾取文件)

public Startup(IHostingEnvironment env)
{
  var builder = new ConfigurationBuilder()
  .SetBasePath(env.ContentRootPath)
  .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
  .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
  .AddJsonFile("hosting.json", optional: false);
  if (env.IsDevelopment())
  {
    // For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
    builder.AddUserSecrets();
  }

  builder.AddEnvironmentVariables();
  Configuration = builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

我已经验证配置构建后设置是否存在,但是当在Program.cs中构建主机时,它没有被选中或使用

public class Program
{
  public static void …
Run Code Online (Sandbox Code Playgroud)

kestrel-http-server asp.net-core

8
推荐指数
1
解决办法
6589
查看次数

ASP.NET核心2.0独立:通过命令行传递监听URL

我按照本教程编写了我的第一个ASP.NET Core 2.0 Web REST API应用程序.但是我的具体问题是关于在VS2017中创建标准ASP.NET核心Web应用程序时在Program.cs文件中获得的代码,它与此处描述的代码相同:

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;

namespace WebApplication5
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有我的应用程序工作正常,当我在VS2017调试,所以接下来我做的步骤是按使它成为一个独立的应用程序本教程,它工作正常,并给了我一个可执行文件,我可以运行(我是在Windows 10 64) .

现在的问题是这个可执行文件在端口5000上启动了web服务器,但是我希望能够通过命令行参数配置监听URL.

通过上面的代码来看,我们可以看到,args传递给WebHost.CreateDefaultBuilder(args),所以我假设的任何命令行参数通过此功能解释,但我想不出我有什么在命令行上传递,以获取服务器听另一个港口.

我尝试了以下选项:
- MyApp.exe --UseUrls="http://*:5001"
- MyApp.exe --UseUrls=http://*:5001
- MyApp.exe --server.urls=http://*:5001
-MyApp.exe urls="http://*:5001"

以及其他各种组合......应用程序启动但只能在端口5000上进行监听.

我开始认为我正在尝试一些不可能的事情:)所以它真的不可能或者我错过了什么吗?

c# kestrel-http-server asp.net-core

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

ASP.NET Core:如何更改IIS Express端口?

我正在使用IIS Express托管我的网站和API,它们都是ASP.NET Core应用程序。当我使用Fiddler查看HTTP网络日志时,我总是会忘记哪个端口属于哪个应用程序。为了解决这个问题,我想将我的应用程序当前使用的端口号更改为更难忘的数字。

例如,我希望我的UI网站使用端口50000,而我的内部API使用50001。

直觉告诉我将“ sslPort”和“ launchUrl”分别更改为50000和50001,但这不起作用。

例如,这是我当前的launchSettings.jsonASP.NET文件

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "http://localhost",
      "sslPort": 0
    },
    "iisExpress": {
      "applicationUrl": "http://localhost:29751",
      "sslPort": 44371
    }
  },
  "profiles": {
    "Development": {
      "commandName": "IISExpress",
      "launchUrl": "https://localhost:44371/"
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

将其更改为此无效

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "http://localhost",
      "sslPort": 0
    },
    "iisExpress": {
      "applicationUrl": "http://localhost:29751",
      "sslPort": 50000
    }
  },
  "profiles": {
    "Development": {
      "commandName": "IISExpress",
      "launchUrl": "https://localhost:50000/"
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

问题:为什么此更改不起作用?如何更改端口号?

非常感谢...

asp.net-core

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