2011-01-24 36 views
2

我在(測試)服務器上安裝並配置了MS WebDeploy 2.0,以便WebMatrix和Visual Studio 2010用戶可以使用它將其應用程序上載到我們的Windows 2008R2環境。IIS7上的WebDeploy 2.0組件 - 驅動器根權限

這非常有WebMatrix的,但我遇到的部署從Visual Studio 2010中的應用程序的問題,如果我點擊發布和使用WebDeploy方法時,Visual Studio報告錯誤並沒有被公佈:

alt text

於是我打開失敗請求跟蹤的網絡管理服務,我看到:

alt text

53 AspNetModuleDiagErrorEvent Uri /MsDeploy.axd eventData跟蹤 部署代理異常。請求ID ''。請求時間戳:'01/22/2011 00:18:54'。錯誤詳細信息: System.UnauthorizedAccessException: 訪問路徑'd:\'被拒絕。
在System.IO .__ Error.WinIOError(的Int32 的errorCode,字符串maybeFullPath)在 System.IO.DriveInfo.get_DriveFormat()

爲了方便使用WebDeploy都設有網站的委派管理用戶被授予全控制網站的網絡文件夾。這是本文中介紹:

Configure the Web Deploy Component on the Web Server

沒有其他的權限被提及。鑑於錯誤的性質,我嘗試在D:\上授予站點的委託管理用戶Read Attribute權限並將其限制爲This Folder Only,並立即Visual Studio 2010能夠使用WebDeploy發佈應用程序。

我真的需要爲託管網站的驅動器的根分配讀取權限,以使Web Deploy 2.0與Visual Studio 2010一起使用嗎?

+0

披露 - 我在SF上問過這個問題,但我認爲這跨越了開發者和管理員角色。 – Kev 2011-01-24 11:40:37

回答

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來順利完成。