我们有一个更新程序,可以自动将 WebDeploy 包发布到 IIS 服务器。该程序适用于 MVC 5 - 应用程序,但不适用于 .Net Core 应用程序。我们使用 Microsoft.Web.Deployment - API,我的发布方法如下所示:
private void UpdateIIS(DTOs.ApplicationConfiguration.ApplicationServer applicationServer, DTOs.Update.Update update) {
    // SSL-Zertifikatsfehler ignorieren
    System.Net.ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(
        (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => { return true; });
    var sourceBaseOptions = new DeploymentBaseOptions();
    var destBaseOptions = new DeploymentBaseOptions() {
        ComputerName = string.Format("https://{0}:{1}/msdeploy.axd?site={2}", applicationServer.Adresse, applicationServer.MSDeployPort, applicationServer.SiteName),
        UserName = applicationServer.User,
        Password = applicationServer.Passwort,
        AuthenticationType = "Basic"
    };
    string updatePackage = Directory.GetFiles(update.UpdateDirectory, "*.zip").FirstOrDefault();
    if (!File.Exists(updatePackage)) {
        throw new Exception("Update-Paketdatei …当我尝试使用Web Deploy部署到IIS7网站时,其中一个选项是将Mark标记为目标上的IIS应用程序.
当它打开或关闭时,这意味着什么?

有谁知道WebDeploy API的任何资源?有人用过吗?
我试过在官方论坛上询问,并环顾网站(那个说有'公共API'但没有链接,文章,资源,博客文章或样本的网站):http://forums.iis. net/t/1180561.aspx ..
在MSDN上有一个类列表,作为一个资源,文档记录很少,没用 - 有一篇博文上有一个使用它的应用程序,但包装了API(我的观点是,如果它是一个简单的应用程序,为什么要包装API - API不好吗?).Le fin.
我应该Process.Start继续msdeploy.exe吗?
如何使用microsoft web deploy创建文件夹?此外,当我创建该文件夹时,如何在其上设置ACL?
使用Visual Studio发布到文件系统时可以这样做吗?或者我是否必须发布到启用了IIS Web管理服务(WMSvc)的服务器才能设置acl并创建文件夹?
我有一个网站,其中包含许多使用团队构建和部署Web部署包的文件.我遇到的问题是包是从服务器场中的一台机器构建的,时间戳并不总是匹配.默认情况下,Web部署意味着完整的站点滚动,并且具有如此多的文件和跨群集的同步,这不是最佳选择.
使用cmd line deploy,我可以传递-UseCheckSum,这可以解决手动部署问题.现在我正在尝试使用自动部署的CI构建并通过我的构建设置传递MSbuild参数.有没有办法以相同的方式部署它?
我正在使用Tfs 2012来构建/部署我们的Asp.Net Web应用程序.我们有一个构建定义,可构建5个解决方案(.sln文件).这就是我们的MsBuild参数的样子:
/p:DeployOnBuild=True /p:AllowUntrustedCertificate=True /p:DeployIisAppPath="Test"         /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=WMSVC /p:MSDeployServiceUrl="https://{server}:8172/msdeploy.axd" /p:UserName="{user}" /p:Password="{password}"
我需要使用此构建定义使用Web Deploy部署所有5个站点.它们共享除DeployIisAppPath之外的所有参数.它适用于1个解决方案,但是对于1个以上的解决方案,我需要为每个解决方案输入不同的DeployIisAppPath,以便每个解决方案都部署到IIS中的正确站点.
我已经检查了这些问题和其他文档,但还没有运气:
我已经尝试将参数作为属性传递给每个sln的{siteName} .Web.csproj作为属性.
任何帮助将不胜感激.
我试图使用称为“ CI”的生成配置在VS 2012中进行发布,但是当我执行发布时,在web.config上使用了“发布”转换(web.Release.config)。如何获取web.CI.config代替? 我认为这将是自动的。
我进行了一些实验,证实了这一点。
有人看过吗?这是(已修复的)错误吗?
我有一个依赖System.Web.Http.WebHost于我的项目的Web API项目,我在该引用上设置了Copy Local = True,版本(在本例中)是5.2.3.0.
当我通过Web部署将项目发布到服务器时,将发布此程序集的旧版本(5.2.2.x).这似乎只影响某些人在发表时而不是其他人.
我们在其他项目中遇到了与其他程序集相同的问题,因此这只是一个例子.我可以将受影响的程序集添加到服务器的GAC或其他东西,以便在受到影响的用户发布时不会死亡,但我想知道这是如何发生的以及如何避免它.
我尝试通过VS2017中的Publish上下文菜单将我的.net核心站点部署到Azure,偶尔(大约1/3部署),我得到以下错误.
Web部署任务失败.(Web部署无法修改目标上的文件'MyCoreWebSite.dll',因为它被外部进程锁定.为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者使用适用于下次发布尝试的.Net应用程序的AppOffline规则处理程序.有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_FILE_IN_USE .)
然后我会等待一分钟,再试一次它会起作用.同时,我将运行handle实用程序寻找锁定DLL的任何东西,它永远找不到任何东西.
这是一个错误还是我错过了一些简单的东西?
webdeploy ×10
.net ×3
msdeploy ×3
asp.net-core ×2
iis ×2
iis-7 ×2
.net-core ×1
asp.net ×1
c# ×1
deployment ×1
msbuild ×1
team-build ×1
tfsbuild ×1