iis - 如何将 WebDeploy 与 ASP.Net core 结合使用

标签 iis asp.net-core msdeploy webdeploy

我们有一个更新程序,可以自动将 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 nicht gefunden");
    }
    using (var deploymentObject = DeploymentManager.CreateObject(
        DeploymentWellKnownProvider.Package,
        updatePackage,
        sourceBaseOptions)
    ) {
        if (deploymentObject.SyncParameters.Count > 0) {
            deploymentObject
            .SyncParameters
            .Single(p => p.Name == "IIS Web Application Name")
            .Value = applicationServer.SiteName;
        }


        var syncOptions = new DeploymentSyncOptions();
        var changes = deploymentObject.SyncTo(
            DeploymentWellKnownProvider.Auto,
            "",
            destBaseOptions,
            syncOptions
        );
    }
}

我没有收到任何错误,但网站没有改变。

最佳答案

是的,您可以将 WebDeploy 与 ASP.NET Core 结合使用。关键是使用 PackagePublish 目标和包发布配置文件:

D:\GitHub\AcmeApp.NET\src\AcmeApp.NET.Web>"c:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild" /t:PackagePublish /p:PublishProfile=Package

http://www.dotnetcatch.com/2016/09/20/webdeploy-packaging-with-asp-net-core/

关于iis - 如何将 WebDeploy 与 ASP.Net core 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929359/

相关文章:

c# - 具有 2 个参数问题的 ASP.NET 2.0 Web API

msdeploy - WebDeploy - 无法登录用户 '.\WDeployConfigWriter'

javascript - 如何在 express 中处理非 UTF-8 编码的 url

c# - ASP.NET 应用程序的高内存使用率

javascript - 我的 Javascript 应该去哪里查看组件?

MSBuild 4 和 MSDeploy 命令行

windows - 使用 MSDeploy 到运行默认 IIS 的 Windows 7 计算机

wcf - 将 WCF 服务从 IIS 移动到 Windows 服务

asp.net - 重定向模式 ="ResponseRewrite"的自定义错误不适用于共享主机

asp.net-core - 使用 AuthenticationStateProvider 注销用户并使用 Blazor 将 User.Identity.IsAuthenticated 设置为 false