2012-08-22 9 views
1

웹 배포를 사용하여 일부 sql 스크립트를 실행하는 dacpac 패키지를 배포하려고합니다. 데이터베이스를 소유하고 스크립트를 실행하고자하는 로컬 Administrators 그룹에있는. \ DeploymentService라는 로컬 Windows 계정이 있습니다. 이를 위해웹 배포 가장 (관리 서비스 위임)이 작동하지 않습니다.

- 나는 따라 위임을 구성 -. 관리 서비스 위임에 내가 dbDacFx 규칙에 대해 "특정 사용자"로 설정 = \ DeploymentService 제공 내가 SQL 서버에서의 ServerAdmin 로그인을 따라 만들 Management Service Delegation - for dbDacFx

암호를 입력합니다. 내 WMSvc가 LOCAL SERVICE 계정에서 실행되었습니다.

나는 배치를 위해 다음과 같은 명령 줄 매개 변수를 사용

msdeploy.exe - 동사 : 동기화 -source : dbDacFx = "C : \ 홈페이지 \ SRC \ Community.DB \ 빈 \ 디버그 \ "ComputerName ="https://Community02:8172/msdeploy.axd?site=Default 웹 사이트 ", username =. \ DeploymentService, password = ***** ********, authType = 기본 - 신뢰할 수 없음

목적지가 다른 PC 인 내 PC에서 실행합니다.

그러나 SQL Server에서 공용 역할로 "로컬 서비스"로그인을 만들었는지 여부에 따라 "잘못된 핸들"또는 "클래스 이름을 찾을 수 없음"오류로 인해 실패합니다.

예상되는 동작 : 관리 서비스 위임의 사용자 이름을 특정 계정으로 설정하면 지정한 계정으로 MSDeploy가 실행될 것으로 예상됩니다.

실제 동작 : 대상 환경에서 SQL 프로필러를 사용하여 추적했으며 WMSvc가. \ DeploymentService 대신 해당 프로세스 계정 (로컬 서비스)에서 msdeploy를 실행한다는 것을 알았습니다. 그 때문에 스크립트 실행이 실패합니다. SQL 서버에서 serveradmin 역할에 매핑 된 LOCAL SERVICE 계정이 있으면 제대로 작동합니다. . \ DeploymentService 계정에서 WMSvc를 실행하면 정상적으로 작동합니다.

기본적으로 관리 서비스 위임에 "사용자 이름"을 사용할 방법이 없습니다. 설정 한 내용은 중요하지 않습니다. 아무런 효과가 없습니다.

아무도 그 작업을하는 방법을 알고 있습니까?

키워드 : WebDeploy, WMSVC, dbDacFx, 명의 도용, 위임

+0

이상한 빠른 질문 ...커넥션에서 DeploymentService creds를 사용하기를 원한다면 IdentityType을 "CurrentUser"로 남겨 두는 것보다 SpecificUser를 설정 한 이유가 있습니까? (어쨌든 연결하려는 사람이 누구입니까?) – krolson

+0

나는 그것을 시험해 보았다 - 아무것도 바뀌지 않았다. 또한 "CurrentUser"는 WMSvc에 인증 된 사용자를 의미해야한다고 가정합니다. 인증을 위해 IIS 사용자를 사용하는 경우에는 작동하지 않습니다. –

+0

MS 배포 개발자에게 연락하여 다음 릴리스 (WebDeploy 4), 내년에 수정 될 버그 인 것으로 확인했습니다. –

답변

1

나는이 문제에 실행 드려 죄송합니다 얘들 아. WMSvc 시나리오에서 dbDacFx 공급자와 함께 사용할 때 SQL Auth가 작동하지 않도록하는 dbDacFx 공급자/MSDeploy에 버그가 있음을 알려드립니다.

이 문제를 해결하기 위해 MSDeploy 서비스를 보증하기위한 충분한 의견이 아직 접수되지 않았습니다. 이것에 의해 영향을받는다면 가장 좋은 방법은 http://aspnet.uservoice.com에 등록을하고 투표를하는 것입니다. 우리가 충분한 표를 얻으면 우리는 이것을 해독 할 업데이트를 선적하는 것을 고려할 수 있습니다. 나쁜 소식에 대해 죄송합니다.