我正在使用TeamCity通过msbuild和WebDeploy构建和部署MVC应用程序集合.
在我的解决方案构建/部署之前的步骤中,我将app_offline.htm复制到deploy目录,以便我可以执行SQL更新和其他Web /解决方案管理步骤,包括构建.
WebDeploy中的一个设置是删除未包含在项目中或不需要运行站点的文件.这会每次删除我的app_offline.htm文件.虽然我理解这是一种理想的结果,但有没有办法在部署时排除此文件从部署目录中删除?
我尝试使用ExcludeFromPackageFiles选项添加一个ItemGroup,但没有结果.
我正在使用Web Deploy从Visual Studio 2010部署我的MVC3应用程序.
当我Administrator在Web Deploy对话框中使用服务器帐户时,一切都很完美.
我有一个新员工开始.我在服务器上创建了一个新用户.这样,我可以在必要时禁用此用户.我给了Administrator权限作为测试,但遗憾的是这个用户不允许部署到服务器.
任何人都可以告诉我给这个用户需要什么(最低)权限,以便他们可以从Visual Studio部署应用程序?
当我部署我的网站时,我需要:
使网站脱机.
运行sql来更新数据库.
更新网站.
将网站重新上线
我想尽可能多地编写脚本,而不必去服务器并进行手动更改.
我目前正在使用WebDeploy来推动我的网站更改.它工作得很好,我不必确切知道我的网站在服务器上的安装位置.
那么放置/删除app_offline文件的最佳方法是什么?如果已经看到一些使用msbuild脚本重命名现有文件(app_offline.htm_)的解决方案.但似乎这需要我知道这个文件的位置.
有没有办法通过web_deploy来做到这一点?
谢谢
我在IIS网站下面有一个子应用程序,我可以使用Visual Studio中的发布向导来部署它没问题.
但是,我正在从构建服务器自动部署,所以我更喜欢直接使用msdeploy.exe.
我可以部署主网站,但尝试部署子应用程序拒绝工作.
这工作(www.mymainwebsite.co.uk是IIS网站):
msdeploy.exe -source:package ='www.mymainwebsite.co.uk\obj\Test\Package\www.mymainwebsite.co.uk.zip' -dest:auto,computerName ='https:// testweb1:8172/MsDeploy .axd?site = www.mymainwebsite.co.uk',userName ='xxx',password ='xxx',authtype ='Basic',includeAcls ='False'-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension - disableLink:CertificateExtension -setParamFile:"www.mymainwebsite.co.uk\obj\Test\Package\www.mymainwebsite.co.uk.SetParameters.xml"-allowUntrustedInfo
这不是(SubApplication是应用程序路径):
msdeploy.exe -source:package ='SubApplication\obj\Test\Package\SubApplication.zip' -dest:auto,computerName ='https:// testweb1:8172/MsDeploy.axd?site = www.mymainwebsite.co.uk/SubApplication ',userName ='xxx',password ='xxx',authtype ='Basic',includeAcls ='False'-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"SubApplication\obj\Test\Package\SubApplication.SetParameters.xml"-allowUntrustedInfo
错误是:
Error Code: ERROR_USER_UNAUTHORIZED
More Information: Connected to the remote computer ("testweb1") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are …Run Code Online (Sandbox Code Playgroud) 在四个Win Server 2008 R2框中,我们安装了MS Deploy.它侦听端口80和8172,它会引起网络上所有其他材料的疑问,即在IIS 7上运行时如何不需要更改端口80默认值.
我无法理解.为什么使用BOTH端口?我无法按照说明将其移至8172,因为它已经在那里注册了一些东西.
它导致了两个问题:1)我要关闭的额外攻击面2)它使我们的负载均衡器无法检测IIS何时停止并且客户从MsDepSvc获得404s!
这太愚蠢了.
今天我使用msbuild将Web应用程序部署到iis服务器.如何使用msdeploy(命令行)执行相同的操作?
MSBuild.exe myproject.csproj
/P:VisualStudioVersion=11.0
/P:Password=pass
/P:AllowUntrustedCertificate=true
/P:DeployOnBuild=True
/P:PublishProfile=deploytest
/P:DeployIISAppPath="Default Web site"
/P:MsDeployServiceUrl=my.server.com
/P:Configuration=Release
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我们的一些ASP.NET应用程序设置部署链.选择的工具是Web Deploy(msdeploy) - 目前.不幸的是我遇到了问题.
因此,链的高级概述是:
Msdeploy使部署新实例变得容易,但我对如何执行"升级"安装感到困惑.主要问题是web.config文件.每个客户端肯定会在那里进行一些自定义以适应他们的特定环境.安装程序本身可以在首次安装时设置一些更重要的参数(通过msdeploy的参数机制实现),但是他们可以手动执行其他操作.
另一方面,我们开发人员偶尔也会对web.config进行更改,添加一些新设置或删除过时的设置.所以我不能告诉msdeploy完全忽略该文件.我需要某种先进的XML修改机制.它可能是开发人员维护的脚本,但它只需要在升级时运行,而不是新安装.
我不知道如何做到这一点.
除此之外,有时还有一些完全奇怪的升级逻辑.例如,应用程序附带了我们公司的徽标,但是有些客户已经替换了.png文件来显示自己的徽标.最近我们需要更新徽标 - 但仅限于没有用自己的徽标替换它的客户.
同样,可能有一些缓存文件夹可能需要在某些升级时清除,而在其他升级时则不需要清除.或者包含可能无法触及的用户内容的文件夹(但在初始安装时带有默认内容).等等.
您通常如何为msdeploy包实现这种双重行为?我真的需要为每个应用程序创建2个不同的包吗?
我目前有一个利用Entity Framework Code-First迁移和Web Publish的项目,其中connectionStrings存储在web.config文件中.
现在是时候将connectionStrings移到web.config之外了,因此我们将它们放入connectionString.config文件中,然后慢慢地将它们转换为webpublish.
connectionStrings.config
<connectionStrings>
<!-- Testing Databases -->
<add
connectionString="server=testserver;database=testdatabasename;user id=someid;password=*******"
name="dbname"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
web.config相关部分
<connectionStrings configSource="config\connectionStrings.config">
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
现在,当我加载Web Publish(Build - > Publish Project)的对话框时,在设置选项卡中我收到错误
No Databases found in the project
Run Code Online (Sandbox Code Playgroud)
这向我表明对话框不够智能,无法查看configSource并从那里加载数据.我可以确认在我的开发人员环境中正确加载了connectionStrings,我还可以确认slowcheetah正在将配置转换为它的生产环境.
有没有办法让Visual Studio Publish看到我的配置配置,并允许代码优先迁移?
asp.net entity-framework webdeploy ef-migrations visual-studio-2013
是否可以在web.config转换文件中包含变量?对于每个环境,我有基本相同的转换,只是具有不同的值.例如,对于开发环境,我有......
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="serverName" value="server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
<add key="serverPath" value="\\server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
对于QA环境,我有...
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="serverName" value="server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
<add key="serverPath" value="\\server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
唯一的区别是server1与server2的值.这是一个简单的例子,实际上,我在转换中多次使用服务器值.有没有办法在变换文件中声明一个多次使用的变量?就像是...
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<property name="server" value="server2" />
<appSettings>
<add key="serverName" value="${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
<add key="serverPath" value="\\${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud) web-deployment-project msdeploy web-config-transform webdeploy
我正在尝试在Azure中进行自动化网站部署,而我正处于运行Web部署命令的阶段.用于生产的命令工作正常并更新内容但是用于登台的命令失败并且标题中包含错误代码.
我不确定问题是什么,如果是授权,我不知道在哪里为暂存帐户设置更多权限.
这是生产命令(有效):
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package="MyTestingSite.zip" -dest:auto,ComputerName="https://mytestingsite.scm.azurewebsites.net:443/msdeploy.axd?site=MyTestingSite",UserName="$mytestingsite",Password="fromProductionPublishProfile",authtype="Basic" -verb:sync
Run Code Online (Sandbox Code Playgroud)
这是用于暂存的(使用ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP失败)
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package="MyTestingSite.zip" -dest:auto,ComputerName="https://mytestingsite-staging.scm.azurewebsites.net:443/msdeploy.axd?site=MyTestingSite__staging",UserName="$MyTestingSite__staging",Password="fromStagingPublishProfile",authtype="Basic" -verb:sync -verbose
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助!谢谢!
webdeploy ×10
msdeploy ×4
asp.net ×2
iis-7 ×2
azure ×1
command-line ×1
deployment ×1
msbuild ×1
teamcity ×1
upgrade ×1