繁体   English   中英

如何在 IIS 上托管我的 ASP.NET 核心站点(在开发环境中,无需部署/发布)

[英]How to host my ASP.NET core site on IIS (in development environment, without deploy / publish)

在我的开发环境中,我曾经在 IIS 上本地托管我的 ASP.NET 站点(非核心)。
这样做帮助我避免使用 IIS Express(每次启动和停止 IIS Express 都非常不舒服)。
这样,我所要做的就是重建和刷新站点。
我的目标是以同样的方式使用 ASP.NET 内核。
我读到这个: https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetcore2x ,它没有 go 很好。
我正在寻找的是在每次 C# 代码更改(需要构建)后无需部署/发布即可。
我使用 ASP.NET 核心 2 & IIS 10

如果需要调试应用程序,可以将ASP.NET Core应用程序配置为默认的IIS启动。

参考: https//docs.microsoft.com/aspnet/core/host-and-deploy/iis/development-time-iis-support#configure-the-project

创建新的启动配置文件以添加开发时IIS支持。 在Visual Studio的解决方案资源管理器中 ,右键单击该项目,然后选择“ 属性” 选择“ 调试”选项卡。 从“ 启动”下拉列表中选择“ IIS ”。 确认使用正确的URL启用了启动浏览器功能。

要么

或者,手动将启动配置文件添加到应用程序中的launchSettings.json文件:

{
"iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
        "applicationUrl": "http://localhost/WebApplication2",
        "sslPort": 0
    }
},
"profiles": {
    "IIS": {
        "commandName": "IIS",
        "launchBrowser": "true",
        "launchUrl": "http://localhost/WebApplication2",
        "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
        }
    }
}

您可以利用ASPNETCore模块的app_offline.htm功能,并将其合并到您的构建过程中。

但您需要发布您的站点并从该文件夹而不是项目文件夹运行IIS站点/虚拟应用程序。

在下面的示例中,我们将站点发布到相对于sln位置的文件夹“published-site”,但仅用于Debug构建。

我还假设构建过程花费的时间比关闭过程所花费的时间要长。

  1. 创建PreBuild目标,在publish文件夹中创建app_offline.htm文件。

     <Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(Configuration)'=='Debug'"> <Exec Command="IF EXIST &quot;$(SolutionDir)published-site&quot; (&#xD;&#xA; echo. 2&gt;&quot;$(SolutionDir)published-site\\app_offline.htm&quot;&#xD;&#xA;)" /> </Target> 
  2. 创建一个PostBuild目标,删除app_offline.htm文件,然后调用dotnet publish。

     <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(Configuration)'=='Debug'"> <Exec Command="IF EXIST &quot;$(SolutionDir)published-site\\app_offline.htm&quot; (&#xD;&#xA; del &quot;$(SolutionDir)published-site\\app_offline.htm&quot;&#xD;&#xA;)&#xD;&#xA;&#xD;&#xA;dotnet publish --no-build --no-restore &quot;$(ProjectPath)&quot; -c $(ConfigurationName) -o &quot;$(SolutionDir)published-site&quot;" /> </Target> 

没有部署/发布,就不可能。 但您可以考虑使用自动部署作为解决方法。 例如,您可以使用Auto Deploy等扩展,或者扩展MSBuild进程

您需要安装 ASP.NET 核心模块/托管捆绑包,并确认进程 model 身份具有适当的权限,更多信息Z5E056C500A1C4B6A7110B50D807BADEus5Z://docs/tutorials.com/en-lishus5Z/docs/tutorials.com/en-lishus5Z视图=aspnetcore-6.0&tabs=visual-studio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM