gpt4 book ai didi

iis - 在 IIS 上设置 Kudu

转载 作者:行者123 更新时间:2023-12-04 02:56:26 27 4
gpt4 key购买 nike

几天前,微软发布了the engine they're using to do git deployments to Azure .我的 TODO 列表上有一个任务,需要在我的 DEV IIS 服务器上设置这种功能,所以我有兴趣为此目的尝试 Kudu。

Getting Started ” 文档展示了如何运行 Web 前端,但其中的所有内容都使用“http://localhost:PORTNUMBER ”类型的 git 存储库、站点 URL 等 URL。

我意识到这可能比他们领先太多了,但我想知道是否有人有关于如何使用“常规”IIS 上的真实域而不是所有本地主机位来设置它的指针?

最佳答案

这是一个老问题,因为我刚刚在内部部署服务器上设置了 Kudu,所以我给出了一个更新的答案,其中包含更多最新信息。当前选择的答案仅适用于您在开发环境中直接运行 Kudu 的情况。

如果您要部署到“生产”类型的环境并且不想在目标服务器上安装 Visual Studio,则 github 上的项目网站上有一个很好的指南。

https://github.com/projectkudu/kudu/wiki/Deploying-to-a-server

在目标服务器上,您需要安装:

  • MSBuild ( http://go.microsoft.com/fwlink/?LinkId=309745 ) - 附带 Visual Studio
  • NodeJS ( http://nodejs.org )
  • Git ( http://git-scm.com/downloads )

  • 回到您的开发机器上,按照上述链接中的说明,克隆 git repo 并使用“build.cmd”文件进行构建。

    在运行 build.cmd 时,我遇到了几个测试失败,这阻止了构建生成工件。这些都与我们不使用的 Mercurial 有关。安装 Mercurial 客户端并没有让它们神奇地消失,所以我禁用了测试,而不是花大量时间调试我的环境。

    您的构建输出将指示失败。我通过注释掉 [Fact] 属性来禁用。
    这些是我禁用的测试:
  • 测试/Kudu.Core.Test/HgRepositoryFacts.cs(所有测试)

  • 一旦成功构建并创建了工件中的所有项目,您就可以开始部署 Kudu 网站和 Web 服务代码。以下说明用于设置不同的 Web 应用程序实例,而不是将所有内容转储到 c:\inetpub\wwwroot 中,这是说明的读取方式。
  • 将“artifacts\Release\KuduWeb”复制到您的网站将运行的服务器上的目标区域。我使用单独的主机头运行我的 kudu 安装,但您可以轻松地使用单独的端口或作为根网站运行。此目录将是您的 Web 应用程序的根目录。
  • 在 KuduWeb 文件夹下立即创建一个空的“App_Data”文件夹。
  • 将“artifacts\Release\SiteExtensions\Kudu”复制到与步骤 1 中的文件夹相同的级别,并重命名为“Kudu.Services.Web”。此位置在 KuduWeb web.config 文件中设置为相对路径 - 设置 serviceSitePath。
  • 打开 IIS Admin 并创建一个指向步骤 1 中的“KuduWeb”文件夹的网站。
  • 将步骤 4 中的应用程序池配置为作为“LocalSystem”运行。这是管理 IIS 站点所必需的。
  • 创建一个与 KuduWeb 相同级别的新文件夹“apps”。这是将发送部署的地方。注意:此位置在 KuduWeb web.config 文件中控制 - 设置“sitesPath”
  • 更改文件系统权限以授予“用户”对上述步骤中创建的“apps”文件夹的完全访问权限。

  • 在启动我的 Kudu 网站时,出现以下错误。

    解析器错误消息:无法加载文件或程序集“System.Web.Mvc,版本=5.1.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。

    出于某种原因,它没有将适当的 MVC 版本复制到部署工件中。

    如果遇到此错误,则可以通过 NuGet 获取 MVC 5 文件。我发现我的源代码是针对 5.1.0 构建的,所以这是适当的链接:

    https://www.nuget.org/packages/Microsoft.AspNet.Mvc/5.1.0

    为了提取dll,我设置了一个新的虚拟项目,并使用NuGet 通过包管理器控制台下拉dll。

    Install-Package Microsoft.AspNet.Mvc -Version 5.1.0



    获得二进制文件后,将其从包目录( .\packages\Microsoft.AspNet.Mvc.5.1.0\lib\net45\System.Web.Mvc.dll )复制到目标机器上的网站 bin 目录。

    此时,您已启动并运行。使用 Web 界面创建您的应用程序。它将在“apps”目录下创建一个子文件夹,其中有一棵应该是不言自明的树。它还将为您的应用程序创建两个新网站:
  • kudu_{您的应用名称}
  • kudu_service_{你的应用名称}

  • 在生产情况下,您应该创建一个在适当的端口/主机 header 上运行的附加网站,该 header 指向:.\apps\\site\wwwroot

    现在您可以为您的部署添加一个 git 远程。转到 git 控制台中的源位置(例如:Git Bash)并添加 Kudu 标识的远程。注意:您可能需要将 url 中的 localhost 更改为适当的服务器名称。

    git remote add deploy http://:52711/your-app-name.git



    将您的代码推送到新的“部署” Remote ,看看会发生什么。您应该会看到所有正常的推送消息,以及构建输出。

    git push deploy master



    由于“节点”未被识别,我的初始推送未能构建和部署。它在路径中,因此服务器重置确信要刷新路径环境变量。您可能会发现要解决的其他错误。例如,我在导入 MSBuild 时遇到了问题并导致了打嗝。

    错误 MSB4019:未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\Visual Studio\v11.0\WebApplications\Microsoft.WebApplication.targets”。

    YMMV,但现在这些都是可以解决的问题。良好的持续部署!

    关于iis - 在 IIS 上设置 Kudu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983385/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com