如何将.Net Core 1.0项目设置为在调试时使用Local IIS而不是IIS Express

我try 过以各种方式修改launchSettings.json文件.例如,将所有出现的IIS Express替换为Local IIS,并更新applicationUrllaunchUrl以使用我的自定义本地主机http://sample.local(我已经更新了主机文件并配置了IIS管理器),但并不满意.

默认设置为Properties/launchSettings.json个文件:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:38601/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "SampleApp": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

推荐答案

当前无法直接使用IIS托管ASP.NET核心应用程序开发时,由于开发文件夹未提供IIS需要承载的所有必要文件.这使得运行ASP.NET Core在development环境下有点痛苦.

正如this article by Rick Strahl所指出的,没有太多理由try 这样做.IIS在运行ASP时几乎不起作用.NET核心应用程序——事实上,你的应用程序不再直接在IIS进程中运行,而是在一个完全独立的控制台应用程序中运行,该控制台应用程序托管Kestrel web服务器.因此,当您自行托管控制台应用程序时,实际上是在同一个环境中运行的.

如果需要发布应用程序,可以使用dotnet命令行或Visual Studio工具将其发布到本地文件夹.

例如,如果要发布到C:\output文件夹,可以使用以下命令:

dotnet publish
  --framework netcoreapp1.0 
  --output "c:\temp\AlbumViewerWeb" 
  --configuration Release

然后,您可以将IIS站点指向输出文件夹.确保将应用程序池CLR版本设置为No Managed Code,并且AspNetCoreModule可用.

有关更多详细信息,请参阅https://docs.asp.net/en/latest/publishing/iis.html

Asp.net相关问答推荐

ASP.NET MVC forEach 循环仅返回 1 个值

如何使用 executeReader() 方法仅检索一个单元格的值

无法连接到 ASP.Net 开发服务器问题

某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

在 DataTextField 中组合两个字段.这可能吗?

self 跟踪实体与 POCO 实体

IIS 将旧用户名返回到我的应用程序

在视图 Mvc.net 中访问路由值

我应该使用用户名还是用户 ID 来引用 ASP.NET 中经过身份验证的用户

如何在同一解决方案中从 MVC 项目调试 Web API 项目

以编程方式从后面的代码中关闭 aspx 页面

ASP.NET 上的 WebSockets 教程

在 ASP.NET MVC 中使用 Razor 创建可重用的 HTML 视图组件

显示 ModalPopupExtender 时如何指定要运行的 javascript

删除 HTML 或 ASPX 扩展

使用 Twitter Bootstrap 在 @html.actionlink 中显示 html

MVC3 和实体框架

如何告诉 RadioButtonList 不生成表格

URL 路由、图像处理程序和潜在危险的 Request.Path 值

如何在asp.net的GridView中按列名而不是按索引获取单元格值