在iis上设置kudu

pxq42qpu  于 2021-06-20  发布在  Kudu
关注(0)|答案(2)|浏览(380)

几天前,微软发布了他们用来将git部署到azure的引擎。为了在dev-iis服务器上设置这种功能,我的todo列表上已经有一段时间了,所以我有兴趣为此尝试kudu。
“入门”文档演示了如何运行web前端,但其中的所有内容都使用http://localhost:portnumber“键入git存储库的url、站点url等。
我意识到这可能比他们走得太远了,但我想知道是否有人有关于如何在“常规”iis上使用真实域而不是所有localhost位来设置它的指针?

oxf4rvwz

oxf4rvwz1#

这是一个老问题,所以我给出了一个更新的答案,提供了更多的最新信息,因为我刚刚在一个内部部署服务器上完成了kudu的设置。当前选择的答案仅适用于从开发环境中直接运行kudu的情况。
如果您正在部署到“生产”类型的环境,并且不想在目标服务器上安装visualstudio,那么github上的项目网站上有一个很好的指南。
https://github.com/projectkudu/kudu/wiki/deploying-to-a-server
在目标服务器上,您需要安装:
msbuild(http://go.microsoft.com/fwlink/?linkid=309745 )-附带visual studio
节点(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\u data”文件夹。
将“artifacts\release\siteextensions\kudu”复制到与步骤1中的文件夹相同的级别,并重命名为“kudu.services.web”。此位置在kuduweb.config文件-设置servicesitepath中设置为相对路径。
打开iis管理并创建一个指向步骤1中的“kuduweb”文件夹的网站。
从步骤4将应用程序池配置为以“localsystem”运行。这是管理iis站点所必需的。
创建一个与kuduweb相同级别的新文件夹“apps”。这里将发送部署。注意:此位置由kuduweb.config文件控制-设置“sitespath”
更改文件系统权限以授予“用户”对在上述步骤中创建的“apps”文件夹的完全访问权限。
在启动我的kudu网站时,我遇到了以下错误。
分析器错误消息:无法加载文件或程序集“system.web.mvc,version=5.1.0.0,culture=neutral,publickeytoken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。
出于某种原因,它没有将适当的mvc版本复制到部署构件中。
如果遇到此错误,可以通过nuget获取mvc5文件。我发现我的源代码是针对5.1.0构建的,因此以下是适当的链接:
https://www.nuget.org/packages/microsoft.aspnet.mvc/5.1.0
为了提取dll,我设置了一个新的虚拟项目,并使用nuget通过包管理器控制台下拉dll。
安装包microsoft.aspnet.mvc-版本5.1.0
获取二进制文件后,将其从包目录(.\packages\microsoft.aspnet.mvc.5.1.0\lib\net45\system.web.mvc.dll)复制到目标计算机上的网站bin目录。
在这一点上,你是站起来运行。使用web界面创建应用程序。它将在“apps”目录下创建一个子文件夹,其中的树应该是自解释的。它还将为您的应用程序创建两个新网站:
Kudu{你的应用程序名}
Kudu服务{你的应用程序名}
在生产环境中,您应该创建一个在适当的端口/主机头上运行的附加网站,指向:.\apps\site\wwwroot
现在您可以为部署添加git远程服务器了。转到git控制台中的源位置(例如:gitbash)并添加由kudu标识的远程设备。注意:您可能需要将url中的localhost更改为适当的服务器名称。
git远程添加部署http://:52711/your-app-name.git
将代码推送到新的“部署”远程服务器上,看看会发生什么。您应该看到所有正常的推送消息,以及构建输出。
git推送部署主机
由于无法识别“节点”,我的初始推送未能生成和部署。它在路径中,因此服务器重置使path环境变量被刷新。您可能会发现需要解决的其他错误。例如,我在导入msbuild时遇到了一个问题,导致了一个小问题。
错误msb4019:未找到导入的项目“c:\program files(x86)\msbuild\microsoft\visual studio\v11.0\webapplications\microsoft.webapplication.targets”。
但是现在这些都是可以解决的问题。很好的连续部署!

3bygqnnd

3bygqnnd2#

该项目会自动为您使用web前端添加的每个应用程序在iis上设置两个网站。kudu不会自动为它们Map绑定,但是打开iis并找到名为“kudu\u appname”和“kudu\u appname\u service”的两个站点相对容易。服务网站是一个你点git太多,另一个是网站本身。只需通过右键单击并“编辑绑定”向它们添加公共绑定。然后可以向它们添加公共主机名。
这是最简单的部分。最困难的部分,我仍然在工作的是让身份验证工作,所以任何随机乔是不能推到我的Kudu存储库!

相关问题