问题标签 [msdeploy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 如何将构建的网站包 MSDeploy 到原始 IIS 网站
我正在尝试自动化我们的构建/部署过程。
到目前为止,我正在使用:
- 带有主Web 应用程序项目(和依赖项目)的 Visual Studio 2010 解决方案
- 微软构建
- 微软部署
- CruiseControl.Net
因此,经过多次争论和咬牙切齿,我现在让 CCNet 启动了一个MSBuild脚本来构建、打包和部署网站。MSBuild脚本如下:
只要在目标机器上已经在 IIS 中配置了一个网站,这一切都可以正常工作。这不需要是现有的“真实”站点(它可能只是一个外壳)。
虽然这很棒,但我真的希望 MSDeploy 能够自动创建网站,因为它似乎可以使用 Web 应用程序。这可能吗?如果是这样,任何帮助将不胜感激!
tfs - TFS 构建部署
您好我正在使用 TFS 并希望在构建到测试服务器后部署两个 Web 应用程序。部署后,我想在其中一个 Web 应用程序上调用一个网页来触发一些工作,例如删除所有数据并插入测试数据。
我怎样才能做到这一点?
gac - 带有 MSdeploy.exe 的 WebDeploy 无法同步 GAC 程序集,因为 dll 被另一个进程锁定
我在使用 msdeploy 将 GAC 程序集同步到许多应用程序服务器时遇到了这个问题。
当我运行这个命令
我收到此错误:
*Microsoft.Web.Deployment.DeploymentException: (28/09/2010 16.46.37) 在远程计算机上处理请求时出错。---> Microsoft.Web.Deployment.DeploymentClientServerException:处理“INPS.DNA.dll”时遇到错误。---> Microsoft.Web.Deployment.DeploymentException:错误代码为 0x80070020。---> System.IO.IOException: 该进程无法访问 'C:\Windows\assembly\GAC_MSIL\MYASSEMBLY\1.0.0.0__a31fe99d2f98435c\MYASSEMBLY.dll' 因为它正被另一个进程使用。在 Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath) 在 Microsoft.Web.Deployment.FileStreamEx.CreateInstance(String path, FileMode fileMode, FileAccess fileAccess) 在 Microsoft.Web.Deployment.FilePathProvider。
在 Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable) 在 Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentWorkerR equest workerRequest) --- 内部异常堆栈跟踪结束 -- - 在 Microsoft.Web.Deployment.StatusThreadHandler.CheckForException() 在 Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext) 在 Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable , ContentRootTable contentRootTable) 在 Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions,在 MSDeploy.MSDeploy.ExecuteWorker() 处的 DeploymentBaseOptions baseOptions、DeploymentSyncOptions syncOptions) 错误计数:1.*
如果我在 DESTINATIONSERVER 上执行IISRESET,则不会发生错误!
我的问题是:
是否可以在不执行 IISRESET 命令的情况下解锁 DLL?
我想我可以避免重新启动整个 Web 服务器。
你能帮助我吗'
非常感谢!
此致。
msdeploy - MSDeploy dbFullSql 提供程序创建包工作,但部署失败
我目前正在使用MSDeploy将一组网站从 II6 迁移到另一台运行 IIS7.5 的机器上。实际的网站迁移按预期工作,但我也在尝试迁移每个网站的关联数据库。
到目前为止,我能够成功地移动我们的一组测试站点,但是对于我们的实时站点,我遇到了部署失败(以及非常长的运行时间 - 1 小时+ 400MB db)。我看到的失败似乎与存储在 sql 数据库(作为数据)中的一些 javascript 有关。看起来当 SMO BatchParser 读取它生成的 sql 脚本时,它会在第一行尝试在数据中插入带有一些 javascript 的行时死掉。
这是我正在使用的MSDeploy命令:
MSDeploy 错误是:
导致错误的sql 文件的摘录:
此外,如果我尝试通过IIS UI 错误导入包:
有人对我如何解决这个问题有任何想法吗?如果我直接使用 SQL Management Studio 从包中运行 sql 文件,它运行得非常好。因此,除非 SMO BatchParser 中存在错误,否则我必须设置某种 SMO 选项来解决此问题。
任何帮助将不胜感激!
msdeploy - MSDeploy 上的空参数错误
我收到以下错误 - 代码“错误:'连接字符串'参数不能为空或为空。” 运行 MSDeploy 时。当我检查 SetParameters.xml 文件时,我注意到以下参数设置。
我不是开发这个包的人,我不确定应该是什么论点。
database - Web 部署命令行工具上的 dropDestinationDatabase 选项
何,
我正在尝试使用 msdeploy 命令行工具将数据库从开发复制到测试。
除了我想在测试中删除数据库然后重新创建它们之外,它似乎有效
这是我的命令行。
为什么忽略 dropDestinationDatabase 选项?
管理员用户具有删除权限。
问候, 罗伯
powershell - 这个 PowerShell 命令行引用/转义是怎么回事?
我显然不知道我在做什么。
我终于让这个 PowerShell 命令工作了。但我无法弄清楚它为什么会起作用。
我关心的是最后的 "" 字符:
为什么我需要双双引号?
我的 IDE (PowerGUI) 说该行没有正确结束,但这是我可以使命令按需要运行的唯一方法。
是什么,我 - 和 IDE - 不知道在 PowerShell 中引用?
echoargs 的一些输出:
如果我运行:
我得到:
如果我在没有双双引号的情况下运行,我会得到:
需要注意的另一件事是,上述命令仅在使用 = 而不是:
最后一个参数时才有效。
这不起作用:
我试过这样的数组解决方案:
我仍然得到同样的错误:
错误:无法识别的参数 '"-postSyncOnSuccess:runCommand=powershell -Command c:\temp\kslog\remotetasks.ps1 Deploy"'。所有参数必须以“-”开头。
我在这里做错了什么新事情吗?
c# - MSDeploy:从命令行“在目标上留下额外的文件”?
我在 CI 期间使用 MSDeploy 将内容发布到不同的服务器。当我从 Visual Studio 2010 发布时,我有一个“在目标上保留额外文件”选项,但从命令行调用 MSDeploy 时,我似乎找不到此功能的标志。
有谁知道如何做到这一点??
asp.net - ASP.NET 连接字符串部署最佳实践
我收集了一份(希望有用的)总结,总结了我为完成这篇文章的主题而进行的研究,以及我遇到的问题。请告诉我您是否找到了您更喜欢的其他方法,特别是如果它们解决了我提到的方法没有解决的问题。
将连接字符串保留在 web.config 中,并使用 XDT/msdeploy 转换根据我的活动构建配置(例如,web.PublicTest.config 文件)将它们替换为设置。我的问题是我将一些特定于服务器的设置合并并隐藏到一个具有许多配置元素的全局相同文件中。此外,我无法在多个对等级应用程序之间共享连接字符串定义。
为 web.config 中的连接字符串指定一个 configSource="DeveloperLocalConnectionStrings.config" 值,然后 XDT 将此值转换为指向我的代码库中的多个特定于环境的文件之一。我的问题是我将所有环境的密码发送到所有目的地(当然,除了 SVN),并且在服务器上等待意外使用的未使用的配置部分。
machine.config 文件中的特定连接字符串,而不是 web.config。问题:谁希望在 machine.config 中找到连接字符串,结果出现意外名称冲突的可能性很高。
指定 configSource="LocalConnectionStrings.config",不要转换值,并编辑项目 xml 以排除连接字符串配置的部署。http://msdn.microsoft.com/en-us/library/ee942158.aspx#can_i_exclude_specific_files_or_folders_from_deployment- 这是我找到的解决我对专有(非分布式)Web 应用程序需求的最佳解决方案,但我很怀疑另一位团队成员有一天会出于某种原因复制生产站点进行测试,瞧!现在正在 UAT 期间修改生产数据库。(更新:我发现在这种情况下我不能使用一键发布,只能使用带有 -skip 参数的 msdeploy 命令行。如上排除文件与将其设置为“无”编译操作而不是“内容”,并导致包将其从部署目标中删除。)
如果尚未设置连接字符串,请将部署包连接起来以提示输入连接字符串(我还不知道如何执行此操作,但我知道这是可能的)。这将产生与上述#4 类似的结果。
指定 configSource="..\ConnectionStrings.config"。非常适合我的需求,因为我可以在我选择的应用程序之间共享配置,并且我的应用程序目录中不会有任何特定于机器的内容。不幸的是,此属性中不允许使用父路径(就像它们用于 'appSettings file=""' - 另请注意,您可以在 configSource= 参考中大量使用 file=)。
ps 这里讨论了其中一些解决方案:ASP.Net 配置文件 -> 多个开发人员和部署服务器的连接字符串
web-services - 在 Visual Studio 2010 中自定义 Web 部署包
我在 VS 2010 中构建了一个 WCF DataService,目标是 .Net 4.0。这一切都很好。我创建了一个部署包,并使用 MSDeploy 和一个 zip 文件将应用程序部署到了 Web 服务器。当我在 TFS 构建代理上设置自动构建时,部署包的内容发生了变化。我的部署包中不再有强命名程序集。这些排除的程序集是解决方案中的项目,并且构建在构建服务器上。
我没有看到很多部署包的配置选项,但我想知道为什么构建服务器使用相同的设置创建与我的工作站不同的包。
我正在使用“仅运行此应用程序所需的文件”,我勾选了“排除生成的调试符号”和“从 App_Data 文件夹中排除文件”。我_do_not_包括数据库包。我确实创建了一个 zip 文件(缺少强命名程序集)
感谢您提供任何信息来解释为什么会发生这种情况。那么也许我可以解决这个问题。
比兹勒
在构建服务器上,我取消了我关心的程序集,这使我的部署包达到了我想要的状态。因此,部署包似乎不包含 GAC 程序集,这是一件好事。我仍然想知道如何在某些引用的程序集中覆盖此行为。
谢谢,