首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程部署到.NET盒

远程部署到.NET盒
EN

Stack Overflow用户
提问于 2011-06-17 20:56:57
回答 4查看 1.7K关注 0票数 2

多年来,我一直能够使用像詹金斯这样的连续构建系统进行构建,然后将我的应用程序远程部署到各种Unix服务器上。我可以使用sshscp命令来执行我的命令。

现在,我正在做一个.NET构建。我已经使用Jenkins完成了构建,现在我希望部署到远程.NET服务器上。我需要关闭应用程序,复制文件,然后重新启动应用程序。我需要能够远程和通过命令行工具(没有GUI工具)来完成这个任务。我在一系列被封锁的机器上,不能随意地部署东西,特别是在生产机器上。

是否有允许我远程关闭服务器、部署一组新文件并重新启动应用程序的机制?

奖金问题

据我所知,*.cab文件与*.jar文件有些相似。也就是说,您可以将单个*.cab文件部署到服务器上,而服务器将将其视为目录中的一堆文件。

  • 这是正确的吗?如果是这样的话,我想使用cab文件来部署东西。
  • 有一个webapp.config文件是我构建的一部分,对于每个服务器来说都是不同的。我更愿意创建一个不包含webapp.config文件的cab文件,这样,我所拥有的cab文件就可以部署到每台机器上,而不需要更改它(只需要更改webapp.config文件)。

谢谢

附录

我就是赢不了。

我在machine02上构建了一个程序,我需要部署到machine06。Machine06在DMZ中,所以我不能在其中添加域用户。我只能创建本地帐户。

使用sc,我可以访问远程系统,但是运行sc的帐户也需要存在于远程系统上。由于我无法在machine06上创建域帐户,也不能将计算机本地帐户添加到另一个machine02系统(即使计算机06\user也成为machine02上的管理员),所以我不能使用sc

我试过Sysinternals的lp命令。这些允许我指定用户名和密码(我假设这是针对另一个系统的)。但是,我得到以下错误:

代码语言:javascript
复制
C:\Windows\system32>pslist \\machine02 -user remuser02 -password Swordfish

pslist v1.29 - Sysinternals PsList
Copyright (C) 2000-2009 Mark Russinovich
Sysinternals

Cannot connect to remote registry on MACHINE02:
Access is denied.
Failed to take process snapshot on MACHINE02.
Make sure that the Remote Registry service is running on the remote system, 
that you havefirewall ports allow RPC access, and your account has read
access the following key on the remote system:
    HKLM\Software\Microsoft\Windows NT\CurrentVersion\Perflib


C:\Windows\system32>

由于该用户是machine02上的管理员,我确信该用户已经读取了对的访问权限,并且我验证了远程注册表访问是打开的。我怀疑路由器正在阻止RPC调用。

因此,由于我无法指定要使用的帐户,所以sc已经退出。Sysinternals工具出来了。我不能在服务器上添加sshd

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-19 11:23:35

在我使用vbscript和powershell之前部署web应用程序时,再加上好的老式xcopy (虽然我同意机器人复制可能是更好的副本替代)。

因此,通过这些需求--我认为这是您想要做的事情(应该通过PowerShell命令提示符来完成):

代码语言:javascript
复制
get-service iisadmin -ComputerName TARGETMACHINE | Stop-Service -force

xcopy source dest

get-service iisadmin -ComputerName TARGETMACHINE | Start-Service

我不会使用*.cab,除非您希望使用压缩来传输文件,然后我将使用*.zip文件。我不认为它们之间有任何真正的区别,但在一般情况下,*.cab文件用于msi部署。

就个人而言,除非有人非常了解MSI版本控制,否则我认为不应该使用MSI将文件部署到web服务器。而且,即使有人确实理解它,我仍然喜欢它只适用于跟踪安装在哪里,这可以实现多种方式,同时避免自动日期等。

由于是IIS,您可以在网站关闭时删除临时asp.net文件。

我(从标记中)假设这是一个web应用程序,因此在代码中使用iisadmin。这同样适用于任何服务。

麦特

票数 2
EN

Stack Overflow用户

发布于 2011-06-19 13:49:19

您可以使用netsvc.exe在远程计算机上停止并启动IIS服务。

代码语言:javascript
复制
SYNTAX: NETSVC servicename \\computername /start  (or /stop)
票数 1
EN

Stack Overflow用户

发布于 2011-06-20 07:50:41

我看你已经接受了一个答案,但我想补充一下,因为也许它对其他人有用:

您也可以使用PsTools。它允许您远程执行命令、停止和启动服务、复制文件等(目标主机上不需要安装)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6391745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档