我已在(测试)服务器上安装并配置了MS WebDeploy 2.0,以便WebMatrix和Visual Studio 2010用户可以使用它将他们的应用程序上传到我们的Windows 2008R2环境。
这适用于WebMatrix但我在从Visual Studio 2010部署应用程序时遇到问题。如果我单击发布并使用WebDeploy方法,Visual Studio将报告错误并且不会发布任何内容:
所以我打开了Web管理服务的失败请求跟踪,我看到了:
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文件夹的完全控制权。本文将介绍这一点:
未提及其他任何权限。鉴于错误的性质,我尝试在Read Attribute
上授予网站的委派管理用户D:\
权限,并将其限制为This Folder Only
,立即Visual Studio 2010能够使用WebDeploy发布应用程序。 / p>
我是否真的需要将读取权限分配给托管网站的驱动器的根目录,以使Web Deploy 2.0与Visual Studio 2010一起使用?
答案 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来获得,这恰好是正确的。