我试图通过Web部署将我的计算机上的网站发布到IIS Web服务器.
我有3台服务器.所有服务器都安装了相同的东西(Webdeploy等)并启动了服务(Web部署代理服务和Web管理服务).
在第一台服务器上,我没有连接问题.但是当我在Visual Studio中"验证连接"到IIS时,其他两个服务器给我一些错误.当我查看IIS服务器上的日志时,我的访问监听了html代码200(ok).
在远程计算机上处理请求时出错.文件名:MACHINE/WEBROOT
错误:无法读取配置节'system.webServer/management/delegation',因为它缺少架构
我真的不知道什么可以解决这个问题,希望你能帮助我.
尝试将ASP.NET应用程序部署包部署到IIS时,收到错误
(您尝试使用的应用程序池将'managedRuntimeVersion'属性设置为'v2.0'.此应用程序需要'v4.0'.
我采取了以下步骤:
这个错误的根本原因是什么,如何解决?


我有一个从我GIT到Azure App使用配置的自动部署Web Deploy.每次将新代码推送到repo时,都会启动build,然后将其部署到Azurewith Web Deploy.
问题是Web App(ASP.NET MVC)继续使用部署的代码提供请求,并且文件替换不会真正影响它.即使web.config已更改.基本上,我可以强制加载新应用程序的唯一方法是手动重启(或停止/启动).
这是我的publishig配置文件:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://app-name.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>app-name.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>app-name</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$app-name</UserName>
<Password>...</Password>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
msdn的相似主题没有答案
asp.net asp.net-mvc azure web-deployment microsoft-web-deploy
如何在Windows 10上配置Web Deploy?应该有用吗?我在Windows 8上找到了有关Web Deploy的信息,但它无法正常工作.它在Windows 10中如何?
我们使用: - SVN - Jenkins - MS Build插件
我们有几个Web Form/MVC/Web服务.
我们将设置Microsoft Web Deploy并从Jenkins运行bat文件.
也许有人可以提出更好的方法,或者这看起来像最有效的解决方案?
先感谢您.
我有部署到我的本地IIS服务器的Web应用程序Sites\Default,它工作正常,现在我想让它更安全 - 我想加密连接字符串和appSettings.
在pubxml文件中我添加了这一行:
<MSDeployEnableWebConfigEncryptRule>true</MSDeployEnableWebConfigEncryptRule>
Run Code Online (Sandbox Code Playgroud)
但这只加密连接字符串.我知道我可以手动打电话:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pe "appSettings" -site Default -app "/"
Run Code Online (Sandbox Code Playgroud)
在部署之后在我的服务器上加密包含appSettings的外部文件,但我必须手动执行此操作.
我的问题是我如何从Visual Studio(Build> Publish)部署网站,并aspnet_regiis在发布成功后自动执行该命令.
我找到了可以使用的信息runcommand和其他有关bat文件的信息,但我没有从命令行调用MSDeploy.
我还发现了我应该构建自定义提供程序并从MSDeploy调用它的信息.
我应该如何编辑我的pubxml文件以获得此行为?
EDIT1:
我设法After Deploy使用以下方法挂钩Target:
<Target Name="EncryptAppSettings" AfterTargets="MSDeployPublish" >
<Message Text="Encrypting appSettings" />
<Exec Command="aspnet_regiis -pe "appSettings" -site Default -app "/"" />
<Message Text="AppPath: $(DeployIisAppPath)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
但是现在我收到了这个错误:
命令"aspnet_regiis -pe"appSettings"-site Default -app"/""退出,代码为9009.
EDIT2:
我尝试过像这样使用runCommand:
<ItemGroup>
<MsDeploySourceManifest Include="runCommand">
<path>aspnet_regiis -pe "appSettings" -site Default -app "/"</path>
<waitInterval>10000</waitInterval>
<AdditionalProviderSettings>waitInterval</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
但我没有运气.我发现了 …
asp.net encryption visual-studio microsoft-web-deploy visual-studio-2013
我一直在努力设置自动备份,但似乎已经碰壁了.按照本文档并使用Powershell,我启用了备份(TurnOn-Backups -On $ true,然后是Configure-Backups -SiteName"test1"-Enabled $ true ;所以Get-BackupSettings -SiteName"test1"告诉我备份已启用).
但是,每当我从Visual Studio发布时,都不会创建备份.我已设置备份路径,权限设置为允许每个人的所有内容..所以我不知道我还能检查什么.
我们正在使用Web Deploy 3的(几乎完整的未公开的)'公共API'来创建我们网站的.zip包,然后将其同步到服务器:
DeploymentBaseOptions destinationOptions = new DeploymentBaseOptions()
{
UserName = //username,
Password = //password,
ComputerName = //a server
};
using (var deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package, "C:/MyWebsitePackage.zip"))
{
deploymentObject.SyncParameters.Load(packageParametersFile); \\ contains some connection string information and nothing more.
DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
syncOptions.WhatIf = false;
deploymentObject.SyncTo(destinationOptions, syncOptions);
}
Run Code Online (Sandbox Code Playgroud)
这段代码完美无缺,直到我们在生产和构建服务器上安装.NET 4.5并将我们部署的项目升级到4.5.现在我们收到以下错误:
您尝试使用的应用程序池将"managedRuntimeVersion"属性设置为"v4.0".此应用程序需要'v4.5'.有关详情,请访问:http: //go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_APPPOOL_VERSION_MISMATCH.
我们的服务器肯定安装了.Net 4.5,而且IIS网站应用程序池版本是'.NET Framework v4.0.30319'(我知道它说v4但是.NET 4.5是'就地'升级并用以下内容替换4.0 DLL新版本号.30319).
通过添加/p:VisualStudioVersion=11.0标志(导致不同的Web应用程序目标文件),可以通过MSBuild.exe命令行进行部署(而不是通过创建程序包,但直接同步到服务器)来解决此问题用于以某种方式允许部署.NET 4.5应用程序).
有谁知道为什么Web Deploy API会这样抱怨,以及我如何以与MSBuild解决方案相同的方式解决此错误?
我有一个自定义.wpp.targets文件,它设置了一些ACL.当我在visual studio中构建时,生成的源清单文件包含自定义ACL.
当我从构建服务器运行时,它只是不起作用.生成的文件不包含.wpp.targets文件中的acl.
构建服务器安装了.net框架4,Web部署,它具有正确的Microsoft.Web.Publishing.targets文件.我在服务器上的构建中包含了一些诊断,其中似乎"AfterAddIisSettingAndFileContentsToSourceManifest"属性为false.我不熟悉msbuild.有人可以帮忙吗?
编辑:
我注意到在我的Microsoft.Web.Publishing.targets中有以下几行:
<PropertyGroup>
<WebPublishPipelineCustomizeTargetFile Condition="'$(WebPublishPipelineCustomizeTargetFile)'==''">$(WebPublishPipelineProjectDirectory)\$(WebPublishPipelineProjectName).wpp.targets</WebPublishPipelineCustomizeTargetFile>
</PropertyGroup>
<Import Project="$(WebPublishPipelineCustomizeTargetFile)" Condition="Exists($(WebPublishPipelineCustomizeTargetFile))"/>
Run Code Online (Sandbox Code Playgroud)
但是,msbuild的输出中没有关于webpublishpipeline的内容.我认为我的.wpp.targets文件甚至没有被查看!
目标文件:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<!--
********************************************************************
Task Custom ACLs
********************************************************************
-->
<PropertyGroup>
<!-- Extends the AfterAddIisSettingAndFileContentsToSourceManifest action to also set ACLs-->
<AfterAddIisSettingAndFileContentsToSourceManifest Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)'==''">
$(AfterAddIisSettingAndFileContentsToSourceManifest);
SetCustomACLs;
</AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>
<Target Name="SetCustomACLs">
<Message Text="Adding Custom ACls" />
<ItemGroup>
<!--Make sure the by default Networkservice/AppPoolIdentity have write permission to the root-->
<MsDeploySourceManifest Include="setAcl" >
<Path>$(_MSDeployDirPath_FullPath)\bin\ABCpdf8-64.dll</Path>
<setAclAccess>ReadAndExecute</setAclAccess>
<setAclResourceType>File</setAclResourceType>
<AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
msbuild输出:
[GenerateMsdeployManifestFiles] CallTarget
[22:13:44]: [CallTarget] Target "PipelinePreDeployCopyAllFilesToOneFolder" skipped. …Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET MVC站点,托管在Amazon EC2服务上.我想与MS WebDeploy建立自动部署到此站点.我发现了一篇很棒的文章:使用Microsoft Web Deploy自动部署.
我无法访问,https://mySite:8172/MsDeploy.axd因为默认情况下端口8172在亚马逊上关闭.我对EC2服务配置不太熟悉,所以我无法了解如何通过https协议打开此端口.我已重新配置IIS以使用默认端口(433),我在用于我的站点的Amazon安全组上打开此端口.
现在我试图https://mySite/MsDeploy.axd在网络浏览器中打开.IE请求凭据,记下证书错误(我点击"继续..")并转发给我404.
可以肯定的是,我尝试通过VS 2010进行部署,当然它不起作用.
任何在Amazon EC2中使用MS Web Deploy经验的人都可以告诉我我做错了什么吗?
asp.net ×5
asp.net-mvc ×3
iis ×3
msbuild ×3
webdeploy ×3
.net ×1
amazon-ec2 ×1
azure ×1
build ×1
c# ×1
deployment ×1
encryption ×1
iis-7.5 ×1
jenkins ×1
windows-10 ×1