CMS가 올바르게 작동하려면 www 루트 아래의 가상 디렉터리에 배포해야 관리 할 웹 사이트에 액세스 할 수 있습니다 (참고 : CMS = N2CMS). Visual Studio 'Publish To Web'을 사용할 때 모두 괜찮습니다. 그러나 msbuild 명령 줄을 통해 패키지를 생성하고 해당 버전을 게시하면 가상 디렉터리가 가상 응용 프로그램으로 변환됩니다.배포시 MsDeploy 가상 디렉터리가 가상 응용 프로그램으로 변환됩니다.
내 원격 웹 서버에 IIS 웹 응용 프로그램 ('exampleapp') 아래에 가상 디렉터리 '/ n2'가 있고 패키지/게시 웹 설정 (IIS 웹 사이트/응용 프로그램 이름)에서이 경로를 구성했습니다. 대상 서버)를 Visual Studio에서 내 프로젝트 내에 저장하십시오.
는 배포 패키지를 생성하려면 : 는msbuild.exe myproject.csproj /T:Package
이 실행 (표준은 MSBuild/msdeploy의 대상) MsDeploy 명령 줄 배치 파일과 함께 내 코드의 압축 된 패키지를 생성합니다.
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="exampleapp/n2" />
</parameters>
생성 된 SourceManifest.xml 다음
<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
<IisApp path="C:\...shortened-path...\PackageTmp" managedRuntimeVersion="v4.0" />
<setAcl path="C:\...shortened-path...\PackageTmp" setAclResourceType="Directory" />
<setAcl path="C:\...shortened-path...\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
</sitemanifest>
누구는 가상 디렉터리로 변환됩니다 왜 단서가 포함되어
는 생성 된 SetParameters.xml 다음과 같은 포함 가상 응용 프로그램? Microsoft.Web.Publishing.targets 파일에서
흠 DeployAsIisApp를 false로 설정하면 작동하지만 이제는 MsDeploy가 지정된 배포 디렉토리가 실제로 다른 곳에있는 가상 디렉터리라는 '구하지 않음'을 얻지 못합니다. ( 오류 : 'setAcl'공급자가 실제 경로와 함께 사용되는 경우 'setAclUser'설정 값을 지정해야합니다 ( ). –
< IncludeSetAclProviderOnDestination 조건 = " '$ (IncludeSetAclProviderOnDestination) ==' '"> True </IncludeSetAclProviderOnDestination >을 대상 파일에 넣었으므로이 설정을 해제 할 수 있습니다. – tdykstra
내 .csproj에서 IncludeSetAclProviderOnDestination을 false로 설정하면 오류가 사라집니다. 그러나 오류는 기본적으로 DeployAsIisApp를 False로 설정하면 SetParameters.xml의 "IIS 웹 응용 프로그램 이름"에 (로컬) 파일 경로 (서버에는 존재하지 않음)가 붙습니다.이것을 서버 경로로 수정하면 IncludeSetAclProviderOnDestination = False로 문제를 해결할 수 있습니다. –