我在使用Web部署部署到默认网站时遇到问题.问题与此类似:MSDeploy批处理文件不再处理引号,其中Web部署在具有空格的部署路径上阻塞.
解决问题的最简单方法是将默认网站重命名为其他没有空格的内容.重命名默认网站是否安全?它会引起任何副作用吗?
我一直在使用VS2010中的发布向导来部署我的MVC应用程序,我没有遇到任何问题,但间歇性地发布将失败并出现以下错误.
错误23 Web部署任务失败.(无法完成对远程代理URL'https:// webserver:8172/msdeploy.axd?site = mysite'的请求.)
无法完成对远程代理URL'https:// webserver:8172/msdeploy.axd?site = mysite'的请求.请求已中止:请求已取消.无法使用已与其基础RCW分离的COM对象.
这似乎是随机发生但是我开VS的时间越长越有可能发生它并且保证修复它的方法是重启VS但是如果我让VS长时间打开(全天或者一夜之间开始变得非常沮丧,每次发生时都要重启VS. 老实说,我不记得错误号码是否总是23,我会在下次发生的时候寻找它,但是有其他人有这个问题或者知道可能是什么原因引起的吗?
更新: 使用VS2012时仍然存在问题.
visual-studio-2010 webdeploy microsoft-web-deploy visual-studio-2012
我们在Angular 5上有一个带有ASP.NET后端的单页应用程序,当我们编译它时,Angular的发布内容被输出到文件夹"Project\dist".
这在本地开发机器上运行良好,但所有dist文件都随机分配了不同的名称,例如:
当我们使用Web发布部署到登台或生产时,一切都很好地传输,并且发布配置文件中的自定义文件夹被包含和发布.
但是,在目标服务器(暂存或生产)上,这些旧的,随机命名的文件和旧的(不再使用的)文件夹仍然存在.这导致在登台和生产服务器上累积了数百个数百个旧文件(来自旧的Web部署).每次我们使用webdeploy推送更新时,我都需要一种自动删除它们的方法.
理想情况下,工作流程是:
这是我们当前发布配置文件的编辑版本:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>staging.example.com</MSDeployServiceURL>
<DeployIisAppPath>Project</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName>WebDeployUser</UserName>
<PublishDatabaseSettings> …Run Code Online (Sandbox Code Playgroud) 当我尝试使用msbuild为Web部署创建一个包时,它只包含项目dll.包zip文件或临时目录不包含引用项目的dll.
我看过这篇文章,这不是我的问题.我肯定使用我正在创建部署包的主项目中引用项目的代码.
我正在使用MSBUILD 4来创建包.
当我使用完全相同的项目文件使用VS2010创建包时,它工作正常.所有引用的项目都将其dll包含在package.zip文件中.
我已经尝试更改_PackageTempDir的位置,但也没有解决问题.
我已经尝试取出ExcludeFilesFromDeployment属性并将PackageAsSingleFile设置为false以查看是否会更改结果.
这是我的Package目标.所有的正则表达式都是这样我可以从搜索路径的末尾拉出我的项目文件名,然后使用该名称作为输出文件夹的名称和zip文件的名称.PackageOutputDir是我要导入的属性.
<Target Name="Package">
<MSBuild Projects="@(PackageProject)" Targets="Package" Properties="Platform=$(Platform);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageOutputDir)\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2])\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2]).zip;
PackageAsSingleFile=true;
ExcludeFilesFromDeployment=Web.config;
_PackageTempDir=$(PackageOutputDir)\temp;">
</MSBuild>
</Target>
Run Code Online (Sandbox Code Playgroud)
关于为什么它不包括我引用的项目dll的任何想法?
这与 Web 部署和/或 Web 部署项目有关(不确定它们之间的关系是什么)。只是对组成任务感到好奇,我可以将其重新组合成自定义包目标。
我无法让它发挥作用
call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy
Run Code Online (Sandbox Code Playgroud)
它给了我:
警告:'backup.bat'不被识别为内部或外部命令,可操作程序或批处理文件.
警告:进程'C:\ Windows\system32\cmd.exe'(命令行'')退出,代码为'0x1'.总变化:1(添加0,删除0,更新1,更改0参数,复制0字节)
如果我删除param1并在.bat中对其进行硬编码,它就可以正常工作,所以如果你想知道的话,bat文件没有问题.
我试图指定.bat的完整路径,它仍然不起作用:
Run Code Online (Sandbox Code Playgroud)call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='c:\backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy
在这种情况下,它看起来像将路径解释为远程路径,它期望backup.bat在服务器上.我在服务器上移动了backup.bat后确认了这一点
为什么它必须如此坚硬???
我们使用CI服务器(Jenkins)编译ASP.NET项目并部署到我们的Web服务器.
我想在部署之前预编译站点以提高性能,因此我PrecompileBeforePublish在发布配置文件(.pubxml)中设置了该属性.
但是,当Jenkins运行构建时,AspNetPreCompile任务失败并显示错误:
AspNetPreCompile:
C:\ Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe
-v/
-pc:\ jenkins\workspace\DeployJob\MyProject\obj\Release\AspnetCompileMerge\Source
-c
c:\ jenkins\workspace\DeployJob\MyProject的\ OBJ \发布\ AspnetCompileMerge\TempBuildDirASPNETCOMPILER:错误ASPRUNTIME:当前标识(JenkinsUser)没有对"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files"的写入权限.
请注意,这不是将Web站点部署到的计算机,它只是一个构建服务器.我可以授予当前身份(JenkinsUser)访问Temporary ASP.NET Files文件夹的权限,但我宁愿不必在一个只是充当愚蠢的Jenkins奴隶的盒子上搞乱文件系统权限.
有没有办法解决?为什么aspnet_compiler试图将站点写入Temporary ASP.NET Files文件夹,有没有办法让它使用不同的临时目录,例如%TEMP%?
我有一个IIS v7.5作为我的Web服务器.此Web服务器不仅托管ASP.NET Web应用程序,还托管我公司应用程序的PHP Web应用程序.我想要的是支持使用没有Visual Studio的Web部署进行部署(用于支持非ASP.NET开发人员).以前,我们使用Windows共享(SMB)来支持非ASP.NET开发人员的部署.但是,当我们的某个开发人员通过Windows共享部署其Web应用程序时,当我们的服务器受到病毒攻击时,此选项会导致问 我知道从没有Visual Studio的Deploy到Azure WebRole的引用,但这不是部署到azure服务器,而是部署到我的公司Web服务器(IIS).
是否有除Visual Studio之外的Web部署客户端?
目前,我们使用以下命令通过MSBuild将Web部署到Windows Azure网站(WAWS)以用于我们的测试环境
MSBuild.exe /p:Configuration=Test /p:DeployOnBuild=true /p:PublishProfile=Test
/p:AllowUntrustedCertificate=true /p:UserName=AzureDeploymentUser
/p:Password=AzureDeploymentPassword Solution.sln
Run Code Online (Sandbox Code Playgroud)
我想在我们的测试版本的同时创建一个prod构建/部署(不是在同一个MSBuild调用中,除非它可能),然后,在构建通过测试的某个时候,将prod构建部署到prod via命令行.(最好使用Web部署)
我怀疑最好的方法是在Test构建时创建一个Web Deploy Package.然后,部署该Web Deploy Package.
我已经知道如何创建一个创建以下文件的Web Deploy Package
ProjectName.zip
ProjectName.deploy-readme.txt
ProjectName.deploy.cmd
ProjectName.SetParameters.xml
ProjectName.SourceManifest.xml
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何将该软件包部署到Windows Azure网站
使用IIS-10,Web Deploy v3.6,Windows 10.
它是一个使用SQL Server 2014作为后端的ASP.NET网站(非应用程序).
我能够成功创建和部署包,但没有SQL脚本.无法找到有关如何在包中包含SQL脚本的任何信息.这是我尝试过的:
单击确定时,没有任何反应.处理图标不断显示.必须使用任务管理器关闭它.
还尝试使用.sql文件的路径,而不是connectionString.但不知道要输入什么参数以及如何/在何处提及连接字符串.
如果有人能用正确的程序指导我,我将不胜感激.