我已在具有新站点的本地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发布的内容。
感谢您的帮助。
阿萨夫
答案 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>