我们已经为一个新项目采用了WebDeploy,它似乎很好地处理了我们的应用程序部署到我们的开发和测试服务器.
现在我们想扩展WebDeploy的使用,以使其部署数据库更改.
通过Web Deploy,您不仅可以发布文件,还可以配置数据库架构/数据,运行数据库更改脚本,设置安全ACL等
...但是我找不到有关如何使用WebDeploy运行数据库更改脚本的任何好信息.
有没有人为此提供指导,建议,最佳实践或信息链接?
谢谢
达伦.
我有一个有效的ASP.NET MVC 3应用程序.该项目使用VS 2010构建,目标是.NET 4.0.现在我将其重新定位到.NET 4.5并成功重新编译.尝试将其部署到我们的测试服务器(Windows 2008 R2 SP1)现在失败:
错误代码:ERROR_APPPOOL_VERSION_MISMATCH更多信息:您尝试使用的应用程序池将"managedRuntimeVersion"属性设置为"v4.0".此应用程序需要'v4.5'.有关详情,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_APPPOOL_VERSION_MISMATCH.
服务器安装了.NET 4.5,但没有应用程序池4.5(因为它是在位升级,因为我理解4.0池应该没问题).客户端计算机具有VS 2012,因此Web Deploy 3(之前是Web Deploy 2).我还在服务器上安装了Web Deploy 3.
试图重新注册ASP.NET aspnet_regiis- 没有运气.
为什么我会收到错误以及如何解决?这太令人沮丧了......
ps发现类似的问题关于RC但它没有帮助
更新:
看起来这是微软自CTP以来没有修复的错误.IgnoreDeployManagedRuntimeVersion财产做了伎俩.多可惜!
我正在尝试使用MSDeploy使用TeamCity将MVC项目部署到服务器.当我在powershell中的计算机上执行此操作时,使用以下命令:
msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer /p:VisualStudioVersion=11.0
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true
Run Code Online (Sandbox Code Playgroud)
它构建项目并将其部署到服务器(DevServer发布配置文件中定义的信息).输出MSDeployPublish结尾显示了一个部分,其中我看到了文本Starting Web deployment task from source...,然后是行,告诉我哪些文件已更新,等等.
当我在TeamCity上使用MSBuild Build步骤在同一个文件上使用相同的参数(来自同一个工作目录)运行它时,它会构建项目但不会发布它.相反,它具有构建过程(CoreCompile,_CopyFilesMarkedCopyLocal,GetCopyToOutputDirectoryItems,CopyFilesToOutputDirectory)的常规输出,但实际上并没有发布任何内容.
我需要对TeamCity中的设置进行哪些更改才能使其以与从我的计算机上使用MSBuild一样的方式发布部署?
(TeamCity 7.1,MSBuild 4.0,WebDeploy 3.0,Visual Studio 12,IIS 7.与我之前的问题相关)
我正在尝试确保将我的应用程序部署到使用Web Deploy时已存在的特定应用程序池.在通过IIS管理器安装应用程序时,或者通过从Web包通过命令行安装时更改.setparameters.xml文件中的值,应由用户使用GUI配置应用程序池.将以下参数条目插入我的parameters.xml中并不起作用.
<parameter name="Application Pool" description="Application Pool for this site" tags="iisApp" defaultValue="ASP.NET v4.0">
<parameterEntry kind="providerPath" scope="IisApp" match="applicationPool" />
</parameter>
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法来实现这一目标?如果没有,我将如何完成这项工作?
MSBuild似乎真的很喜欢我.最近,我正在尝试从命令行构建和部署的不同可能性.但是,当我将发布配置文件传递给MSBuild时,我遇到了一些看似奇怪的行为.
这是我刚刚做的一个例子:
我暂时使用以下命令部署到本地IIS:
msbuild D:\PathToFile\DeployDBVariation01\DeployDBVariation01\DeployDBVariation01.csproj
/p:Configuration=Release;
Platform=AnyCpu;
DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployServiceURL="localhost";
DeployIisAppPath="DeployApp/DeployThis";
MSDeployPublishMethod=InProc;
Username=thisIsNotActuallyMyUsername;
password=guesswhat;
AllowUntrustedCertificate=true
Run Code Online (Sandbox Code Playgroud)
这有效!之后它已成功部署,我可以在浏览器中调用它.
但是,由于Visual Studio使我们能够轻松使用发布配置文件,因此我想通过命令行与MSBuild一起尝试,并尝试使用以下命令:
msbuild D:\PathToFile\DeployDBVariation01\DeployDBVariation01\DeployDBVariation01.csproj
/p:DeployOnBuild=true;
AllowUntrustedCertificate=true;
PublishProfile=ReleaseLocal
Run Code Online (Sandbox Code Playgroud)
ReleaseLocal是我在Visual Studio中创建的配置文件,它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>localhost</MSDeployServiceURL>
<DeployIisAppPath>DeployApp/DeployThis</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName />
<_SavePWD>False</_SavePWD>
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="DefaultConnection" Order="1" Enabled="False">
<Destination Path="Data Source=.\SQLEXPRESS;Initial Catalog=HorstDataProductive;User ID=sa;Password=GuessWhat" />
<Object Type="DbDacFx">
<PreSource Path="Data Source=.\SQLEXPRESS;Initial Catalog=HorstData;User ID=sa;Password=GuessWhat" includeData="False" />
<Source Path="$(IntermediateOutputPath)AutoScripts\DefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
</Object>
<UpdateFrom Type="Web.Config">
<Source MatchValue="Data …Run Code Online (Sandbox Code Playgroud) 我似乎无法将站点部署到在Azure VM中运行IIS和Web Deploy的Windows Server 2012 r2.我已经验证端口是打开的,凭据是否正确以及站点名称.我尝试使用http:和https:也试过使用msdeploy.axd端点和MSDEPLOYAGENTSERVICE一无所获.检查服务是否正在运行,如果我可以连接到可以在端口80上的机器到默认站点.尝试从多个连接连接我得到相同的结果......
无法连接到远程计算机("<计算机名称> .cloudapp.net").在远程计算机上,确保已安装Web Deploy并且已启动所需的进程("Web部署代理服务").有关详情,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_DESTINATION_NOT_REACHABLE.无法连接到远程服务器.
我们在Windows 2008R2上有一个运行IIS 7.5的Web场环境.我们使用共享配置和Web存储复制.
我们尝试在其中一台服务器上安装Web Deploy(v3.5),但收到一条错误消息,指出共享配置不支持Web部署.
是否可以在共享配置环境中运行Web Deploy?如果是这样的话?
注意:我们已经弄清楚了,所以我在这里发布答案.我们可以在这个主题上找到很少甚至没有文档,所以我认为最好在这里托管信息,以便世界其他地方可以轻松找到它.
当我在visual studio中单击发布ASP.NET 5项目时,我只能选择3个目标:Microsoft Azure Web Apps,
Import,
File System
ASP.NET 4.6项目中没有Web Deploy或Web Deploy包.
如何在ASP.NET 5项目上执行Web Deploy?
visual-studio webdeploy microsoft-web-deploy visual-studio-2015 asp.net-core
在Microsoft生态系统中,人们很高兴使用WebDeploy软件包部署Web应用程序,直到Docker出现.突然之间,每个人都开始喜欢使用Docker,而是写了一些文章,告诉他们如何将WebDeploy变成Docker镜像.
我在这篇文章(以及其他人)中搜索了"为什么"这个词,并没有找到解释,让我推断答案只是"因为Docker".
我可能过于简单了,但似乎WebDeploy Packages和Docker镜像用于部署的类似目的,我不清楚为什么我想要一个非常好的WebDeploy包并将它放在Docker镜像中.我错过了什么?Docker带来了什么额外的好处,超出了我们对WebDeploy的好处?我什么时候应该选择另一个,或者同时使用它们?
我已在具有新站点的本地Windows 2012服务器上设置了Web部署.
我已在IIS服务器级别和站点级别通过IIS管理器权限设置管理员权限.
我为MySiteApp创建了一个应用程序池和一个虚拟目录.
My Web Deploy在VS.NET 2015上发布设置:
服务器:192.168.45.60站点名称:TestSite/MySiteApp用户名:TESTSERVER\Administrator
验证发布配置文件上的连接传递确定.
添加True到.pubxml
尝试发布到服务器时,我收到错误:
错误错误:远程服务器返回错误:(401)未经授权.错误代码:ERROR_USER_UNAUTHORIZED
在Windows Server 2012事件查看器中,我可以看到此错误:
IISWMSVC_LOGIN_UNKNOWN_ERROR
检索登录信息时发生意外错误.
异常:System.Runtime.InteropServices.COMException(0x8007000D):站点名称无效
Microsoft.Web.Administration.SiteCollection.get_Item(String)上的Microsoft.Web.Administration.Interop.IAppHostProperty.set_Value(Object value)at Microsoft.Web.Administration.ConfigurationElementCollectionBase`1.FindElementWithCollectionKey(String elementName,String collectionKey,Object value)在Microsoft.Web.Management.Server.WebManagementHttpModule的Microsoft.Web.Management.Server.ApplicationManagementUnit..ctor(IManagementContext context,String siteName,String applicationPath)上的Microsoft.Web.Management.Server.ApplicationManagementUnit.EnsureDefinition()处. Microsoft.Web.Management.Server.WebManagementHttpModule.OnApplicationPostAuthorizeRequest(Object sender,EventArgs e)中的CreateManagementUnit(HttpRequest请求)
进程:WMSvc User = TESTSERVER\Administrator
如果我在.pubxml更改如下:
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
至
<MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>
Run Code Online (Sandbox Code Playgroud)
并添加 <AuthType>NTLM</AuthType>
然后我就可以毫无问题地发布了.
我想我没有正确设置WMSVC发布的东西.
谢谢你的帮助.
阿萨夫