【问题标题】:ASP.NET 5 RC1 Project DifferencesASP.NET 5 RC1 项目差异
【发布时间】:2016-04-04 22:39:50
【问题描述】:

我刚刚使用 ASP.NET 5 MVC 6 在 VS 2015 中创建了另一个测试项目。上次我使用的是运行时的 beta-7。然而,这一次,我使用的是 RC1。

RC1 版本的project.json 文件:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  }

beta-7 版本的 project.json 文件:

"commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini"
  }

Kestrel 是一个单声道平台,我不知道为什么默认模板会设置它而不是 IIS 或 IIS Express?有人可以解释如何为在 RC1 上运行的 Web 应用程序正确配置 IIS(首选)和 IIS Express 吗?虽然 RC1 站点正在运行并显示在 IIS Express 任务栏中,但为什么会有 Kestrel 配置条目?

切换到完整的 IIS 和 CoreCLR 的步骤是什么?

【问题讨论】:

    标签: asp.net windows-7 visual-studio-2015 asp.net-core asp.net-core-mvc


    【解决方案1】:

    ASP.NET 5 支持 3 种不同的服务器:

    Microsoft.AspNet.Server.IIS
    Microsoft.AspNet.Server.WebListener (WebListener)
    Microsoft.AspNet.Server.Kestrel (Kestrel)
    

    您可以通过在 project.json 文件中指定命令,将您的应用程序配置为由任何或所有这些服务器托管。

    启动服务器时,您可以为其提供一些配置选项。这可以使用命令行参数直接完成,也可以指定包含设置的配置文件。 Microsoft.AspNet.Hosting 命令支持服务器使用的参数(例如 Kestrel 或 WebListener)以及 server.urls 配置键,其中应包含服务器应处理的 URL 前缀的分号分隔列表。

    project.json 文件演示了如何直接传递 server.urls 参数:

    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
    

    或者,可以参考配置文件,而不是:

    "kestrel": "Microsoft.AspNet.Hosting --config hosting.ini"
    

    然后,hosting.ini 可以包含服务器将使用的设置(也包括服务器参数):

    server=Kestrel
    server.urls=http://localhost:5000
    

    参考和更详细的信息在这里: http://docs.asp.net/en/latest/fundamentals/servers.html

    此外,新 Startup 类中的 Configure() 方法允许指定要使用的处理程序,您可以指定 app.UseIISPlatformHandler() 使用适当的参数来使用 IIS 托管。

    您的应用程序很可能在 IIS (express) 托管下运行,因为您可能在“运行”选项(在 Visual Studio 顶部的工具栏中)选择了 IIS 或 IIS Express。如果您想使用 Kestrel,请将其更改为“web”,然后它将选择在 command->web 下的 project.json 配置中指定的内容。

    【讨论】:

    • 使用 CoreCLR 将服务器和运行时更改为 IIS 的过程是什么?
    • Microsoft.AspNet.Server.IIS 炸毁 - 浏览器一直在旋转。
    • 您是否尝试在 Startup.cs->Configure() 中放置一个调试点并确定它是否在那里抱怨?
    • 站点正在运行,但我不知道如何使用 IIS。根据您提供的链接中的文档:“使用 IIS 作为 ASP.NET 应用程序的服务器是默认选项。”显然情况并非如此。我只需要一系列步骤来将 IIS 设置为默认服务器。我必须使用 Kestrel 吗?
    • "dnvm list" 显示 1.0.0-rc1-update1 作为默认值,但 project.json 指示 Kestrel "1.0.0-rc1-final"。网站死掉了,让它再次运行的唯一方法是调试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 2015-01-04
    • 2015-01-29
    • 2015-02-15
    相关资源
    最近更新 更多