IIS7上的WebDeploy 2.0组件 - 驱动root权限

时间:2011-01-24 11:39:08

标签: asp.net visual-studio-2010 iis-7 msdeploy

我已在(测试)服务器上安装并配置了MS WebDeploy 2.0,以便WebMatrix和Visual Studio 2010用户可以使用它将他们的应用程序上传到我们的Windows 2008R2环境。

这适用于WebMatrix但我在从Visual Studio 2010部署应用程序时遇到问题。如果我单击发布并使用WebDeploy方法,Visual Studio将报告错误并且不会发布任何内容:

alt text

所以我打开了Web管理服务的失败请求跟踪,我看到了:

alt text

  

53 AspNetModuleDiagErrorEvent Uri /MsDeploy.axd eventData Tracing   部署代理异常。请求ID   ''。请求时间戳:'01 / 22/2011   ○时18分54' 秒。错误详情:   System.UnauthorizedAccessException的:   拒绝访问路径“d:\”   在System.IO .__ Error.WinIOError(Int32   errorCode,String maybeFullPath)at   System.IO.DriveInfo.get_DriveFormat()

为了便于使用WebDeploy功能,网站的委派管理用户被授予对网站的Web文件夹的完全控制权。本文将介绍这一点:

  

Configure the Web Deploy Component on the Web Server

未提及其他任何权限。鉴于错误的性质,我尝试在Read Attribute上授予网站的委派管理用户D:\权限,并将其限制为This Folder Only,立即Visual Studio 2010能够使用WebDeploy发布应用程序。 / p>

我是否真的需要将读取权限分配给托管网站的驱动器的根目录,以使Web Deploy 2.0与Visual Studio 2010一起使用?

1 个答案:

答案 0 :(得分:2)

这是Visual Studio 2010的一个错误,默认使用错误的Microsoft.Web.Deployment程序集(7.1.0.0)。

要解决此问题,需要对VS 2010的配置文件进行编辑,以强制它使用8.0.0.0

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

<dependentAssembly>
  <assemblyIdentity 
     name="Microsoft.Web.Deployment" 
     publicKeyToken="31bf3856ad364e35" 
     culture="neutral"/>
  <bindingRedirect 
     oldVersion="7.1.0.0" 
     newVersion="8.0.0.0"/>
</dependentAssembly>

上面的xml片段应添加到:

/configuration/runTime/assemblyBinding

微软的PSS小组证实了这一点。显然,Visual Studio 2010 SP1将解决此问题。

显然,您需要在部署计算机上安装MS WebDeploy 2.0。这可以通过Web平台安装程序或安装Web Matrix 1.0 RTM来获得,这恰好是正确的。