2013-02-18 3 views
2

Windows 웹 서버 2012/IIS8을 실행하는 새 VPS에 내 웹 사이트를 배포하려고했습니다. Visual Studio가 연결되어 디렉토리 구조를 만든 다음 실패합니다. 서버 로그를 살펴보면 아래 링크에서 설명하는 오류가 발생합니다.문제 해결 MS 웹 배포 ACL 권한 오류

http://www.iis.net/learn/publish/troubleshooting-web-deploy/troubleshooting-common-problems-with-web-deploy

5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer. 
The server experienced an issue processing the request. Contact the server administrator for more information. 
This particular error does not give you much to go on, but the picture becomes much clearer if you look at the Web Deploy error log in Event Viewer. 
User: DEPLOYSERVER\User1 
Client IP: 192.168.0.203 
Content-Type: application/msdeploy 
Version: 8.0.0.0 
MSDeploy.VersionMin: 7.1.600.0 
MSDeploy.VersionMax: 7.1.1070.1 
MSDeploy.Method: Sync 
MSDeploy.RequestId: 63b2f3d1-1817-444f-8280-9fa4f6f85d53 
MSDeploy.RequestCulture: en-US 
MSDeploy.RequestUICulture: en-US 
Skip: objectName="^configProtectedData$" 
Provider: auto, Path: 
Tracing deployment agent exception. Request ID '63b2f3d1-1817-444f-8280-9fa4f6f85d53'. Request Timestamp: '5/12/2011 9:31:41 AM'. Error Details: 
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation. 
at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) 
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) 
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext) 
at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path) 
at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) 
at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext) 
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) 
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) 
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) 

해결하려면, 그들은 다음과 같은 제안 : ' "변경 권한"을 부여'의 의미는 무엇

From this, we can see that User1 does not have rights to set security information. In this case, the user does not have Modify permissions on the content. Granting "Change Permissions" to the content resolves the problem. 

? 나는 그들이 파일 허가를 의미했기 때문에 웹 사이트 디렉토리 구조에 대한 읽기/쓰기/수정 파일 권한을 부여했지만 여전히 오류가 발생합니다.

+4

기본적으로 로컬 서비스에 대한 모든 권한을 부여해야하는 문제를 발견했습니다. 나는 IIS_USER에게 퍼미션을 주었다. 다음 링크는 저에게 해결책을주었습니다 http://forums.iis.net/t/1188531.aspx/1 – MPD

+1

와아! IIS_USER에 대한 권한을 권장 권한으로 다시 변경했기를 바랍니다. IIS_USER에 대한 모든 사용자 권한은 해커의 젖은 꿈입니다. –

+1

기사에서 말하는 것처럼 로컬 서비스에 대한 권한 만 변경하는 것이 아니라 전체 제어 권한을 부여해야합니다. –

답변

4

웹 배포를 사용하려면 배포 서비스가 루트 웹 응용 프로그램 폴더에 대한 액세스 권한이 있어야합니다. 그래서 내가 한 것은 사용자 그룹 "인증 된 사용자"에게 내 웹 사이트 루트 폴더의 전체 액세스 권한을 부여하는 것입니다. 그리고 그것은 나를 위해 작동합니다.

+1

놀랍게도이 시간은 저를 위해 고생했습니다. –