0

我正在尝试使用 Visual Studio 2017 使用非管理员帐户将ASP.NET Core Web 项目发布到 IIS(远程服务器),并且在部署时出现以下错误:

从源开始 Web 部署任务:manifest(D:\Projects\Own\AspNetCore\CoreWithAngularTrial\CoreWithAngularTrialApi\obj\Debug\netcoreapp1.1\PubTmp\CoreWithAngularTrialApi.SourceManifest.xml) 到目标:auto()。C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(134 ,5): 错误:Web 部署任务失败。(使用 Web 管理服务连接到远程计算机(“...”),但无法授权。请确保您使用的用户名和密码正确,您要连接的站点存在,并且凭据代表有权访问该站点的用户。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED。)确保站点名称、用户名和密码正确。如果问题仍未解决,请联系您的本地或服务器管理员。错误详细信息:使用 Web 管理服务连接到远程计算机(“...”),但无法授权。确保您使用正确的用户名和密码,您要连接的站点存在,并且凭据代表有权访问该站点的用户。了解更多信息:http: //go.microsoft.com/fwlink/ ?LinkId=221672#ERROR_USER_UNAUTHORIZED 。远程服务器返回错误:(401) Unauthorized。发布部署失败。

我有以下部署配置:

Publish method = Web deploy
Server = servername:8172/msdeploy.axd
Site name = Default Web Site/CoreWithAngularTestApi
User name = username
Password = ******

在同一网站(默认网站)下发布不同的应用程序(ASP.NET MVC 5)时,完全相同的配置有效,因此远程服务器上的发布配置似乎是正确的。

username本地管理员解除阻止 Visual Studio 2017 中的发布过程。

此外,发布配置文件 (*.pubxml) 几乎相同。

远程服务器上的事件查看器捕获以下错误:

IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED

仅允许 Windows 管理员使用服务器连接进行连接。其他用户应使用“连接到站点或应用程序”任务才能进行连接。

进程:WMSvc 用户=用户名

问题:如何从 Visual Studio 2017 启用非管理 Web 发布?

4

2 回答 2

1

此问题已修复:https ://github.com/aspnet/websdk/issues/146 。

ASP.NET 核心项目使用一组不同的发布目标(因此从 MVC5 开始的行为变化)。该项目在 GitHub 上可用 - https://github.com/aspnet/websdk

于 2017-06-30T05:27:45.630 回答
0

我设法弄清楚为什么非管理员用户发布失败。服务器设置是正确的,但 Visual Studio 发布似乎将 ASP.NET Core Web 应用程序部署与 ASP.NET MVC 5 区别对待。

我必须在发布配置文件 xml 文件中明确指定网站名称。所以,而不是:

<MSDeployServiceURL>servername:8172/msdeploy.axd</MSDeployServiceURL>

我放

<MSDeployServiceURL>servername:8172/msdeploy.axd?Site=Default Web Site</MSDeployServiceURL>

注意:在 VS2017 中发布 MVC 5 项目时不会出现此问题。

于 2017-06-03T04:54:41.723 回答