VS.NET 2015 ENT Web部署ASP.NET Core 1错误ERROR_USER_UNAUTHORIZED?

AG7*_*G70 9 webdeploy iis-8 visual-studio-2015 asp.net-core

我已在具有新站点的本地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发布的东西.

谢谢你的帮助.

阿萨夫

小智 1

我发现 .NET core 的 Powershell 脚本弄乱了站点 URL。它将发布站点附加到服务器 URL,但也将其包含在它生成的destinationmanifest.xml 文件中,因此实际上它试图将例如发布到“my_server”上的“my_site/my_app”作为“ https://my_server :8172/msdeploy.axd?site=my_site/my_site/my_app ”。

我通读了新的publish-module.psm1脚本,发现发布配置文件有一个属性可以防止它进行这种重复。

<UseMSDeployServiceURLAsIs>True</UseMSDeployServiceURLAsIs>
Run Code Online (Sandbox Code Playgroud)

其他人报告说他们必须包含以下内容,但我没有(尽管我们的服务器确实有 WMSVC 的签名证书,ymmv):

    <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
    <AuthType>NTLM</AuthType>
Run Code Online (Sandbox Code Playgroud)

最终我的(冲洗后的).pubxml 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <PublishFramework>netcoreapp1.1</PublishFramework>
    <UsePowerShell>True</UsePowerShell>
    <EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
    <MSDeployServiceURL>https://MYSERVER:8172/msdeploy.axd</MSDeployServiceURL>
    <DeployIisAppPath>MYSITE/MYAPP</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>mydomain\myusername</UserName>
    <_SavePWD>False</_SavePWD>
    <UseMSDeployServiceURLAsIs>True</UseMSDeployServiceURLAsIs>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)