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

时间:2016-07-05 06:23:54

标签: visual-studio-2015 asp.net-core iis-8 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.Interop.IAppHostProperty.set_Value(对象   价值)   Microsoft.Web.Administration.ConfigurationElementCollectionBase`1.FindElementWithCollectionKey(字符串   elementName,String collectionKey,Object value)at   Microsoft.Web.Administration.SiteCollection.get_Item(String name)at   Microsoft.Web.Management.Server.ApplicationManagementUnit.EnsureDefinition()   在   Microsoft.Web.Management.Server.ApplicationManagementUnit..ctor(IManagementContext   context,String siteName,String applicationPath)at   Microsoft.Web.Management.Server.WebManagementHttpModule.CreateManagementUnit(HttpRequest的   请求)   Microsoft.Web.Management.Server.WebManagementHttpModule.OnApplicationPostAuthorizeRequest(对象   发件人,EventArgs e)

     

处理:WMSvc用户= TESTSERVER \ Administrator

如果我在.pubxml上更改如下:

<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>  到

<MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>

并添加<AuthType>NTLM</AuthType>

然后我可以毫无问题地发布。

我猜我没有正确设置WMSVC发布的内容。

感谢您的帮助。

阿萨夫

1 个答案:

答案 0 :(得分:1)

我发现.NET核心的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>

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

    <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
    <AuthType>NTLM</AuthType>

最终我的(冲洗过的).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>