콘텐츠 배포 문제 해결

업데이트 날짜: 2009년 4월

적용 대상: Office SharePoint Server 2007

 

마지막으로 수정된 항목: 2009-05-26

이 문서에서는 Microsoft Office SharePoint Server 2007에서 콘텐츠를 배포 동안 발생할 수 있는 일반적인 문제를 해결하는 단계를 제공합니다.

이 문서의 내용

  • 원본 및 대상 팜의 SharePoint 업데이트 수준이 동일해야 함

  • 대상 사이트 모음에서 필요한 모든 언어 팩을 사용할 수 있어야 함

  • .cab 파일 크기가 IIS 7에 구성된 최대 콘텐츠 길이를 초과함

  • 원본 서버의 디스크 공간이 부족함

  • 루트 사이트 및 하위 사이트에 정의된 열 이름이 중복됨

  • 원본 및 대상에서 콘텐츠가 충돌함

  • 대상 웹 응용 프로그램의 최대 업로드 크기가 배포할 파일보다 작음

  • 원본 라이브러리의 문서가 바이러스에 감염된 것으로 표시됨

  • Stsadm import 작업 중에 SQL Server 교착 상태가 발생함

  • 콘텐츠를 배포하는 동안 제한 시간을 초과함

  • 오류: changeToken은 현재 변경 로그를 시작하기 전 시간을 나타냅니다.

원본 및 대상 팜의 SharePoint 업데이트 수준이 동일해야 함

증상

핫픽스 릴리스에서 내보내기 패키지의 스키마가 변경되어 원본 서버가 대상 서버보다 업데이트 수준이 더 높아지면 업데이트 수준이 서로 다른 서버 사이에서 콘텐츠 배포 작업에 실패합니다. 이는 중앙 관리 웹 사이트를 사용하거나 Stsadm exportimport 작업을 사용하는 콘텐츠 배포 작업 모두에 적용됩니다.

원인

콘텐츠 배포는 Microsoft Office SharePoint Server 2007 및 Windows SharePoint Services 3.0 업데이트 수준이 원본 및 대상 서버 모두에서 동일한 경우 또는 대상 서버가 원본 서버보다 업데이트 수준이 더 높은 경우에만 지원됩니다.

해결 방법

팜의 모든 서버에 현재 Office SharePoint Server 2007 및 Windows SharePoint Services 3.0 핫픽스를 모두 설치해야 합니다.

대상 사이트 모음에서 필요한 모든 언어 팩을 사용할 수 있어야 함

증상

대상 사이트 모음에서 필요한 언어 팩이 누락된 경우 콘텐츠 배포 작업에 실패합니다.

원인

원본 사이트 모음에 사용되는 언어 팩은 대상 사이트 모음에도 설치되어 있어야 합니다.

해결 방법

대상 사이트 모음에 필요한 언어 팩을 설치하고 콘텐츠 배포 작업을 다시 실행합니다.

.cab 파일 크기가 IIS 7에 구성된 최대 콘텐츠 길이를 초과함

증상

29MB를 초과하는 .cab 파일을 업로드하려고 하면 콘텐츠 배포 작업이 바로 실패합니다. 다음 항목이 내보내기(원본) 서버의 응용 프로그램 이벤트 로그에 표시됩니다.

Event ID: 5323 Source: Content Deployment Description: Failed to transfer files to destination server for content deployment job 'test 1'. Exception was 'System.Net.WebException: The remote server returned an error: (404) Not Found. Event ID: 4958 Source: Content Deployment Description: Publishing: Content deployment job failed. Error: 'System.Net.WebException: The remote server returned an error: (404) Not Found. Event ID: 6398 Source: Windows Sharepoint Services Description: The Excecute method of job definition Microsoft.Sharepoint.Publishing.Administration.ContentDeploymentJobDefination threw an exception. The remote server returned an error (404) Not Found.

또한 내보내기 서버의 ULS(통합 로깅 서비스) 로그에서 다음과 유사한 항목을 찾을 수 있습니다.

OWSTIMER.EXE (0x0778) 0x079C CMS Content Deployment 0 Unexpected ContentDeploymentJob.DoServerToServer: Remote connection failed while uploading files for source-Job 'Test' with exception 'The remote server returned an error: (404) Not Found.'

.cab 파일의 업로드 크기가 문제인지 확인하려면 가져오기(대상) 서버의 IIS 로그에서 응답이 다음과 유사한 404.13 오류인지 확인해야 합니다.

2008-09-01 08:55:08 10.10.10.2 POST /_admin/Content+Deployment/DeploymentUpload.aspx filename=%22ExportedFiles13.cab%22&remoteJobId=%11456fa7ed-ddcdedcdd-9aae-a1adsf5re1db%22 1976 - 10.10.10.3 - 404 13 0 62

원인

콘텐츠 배포에서는 먼저 모든 콘텐츠를 XML 및 2진 파일로 파일 시스템에 내보낸 다음 이 파일을 .cab 파일로 패키지합니다. 이 파일은 HttpPost를 사용하여 파일을 추출하고 가져오는 대상 서버로 업로드됩니다. 콘텐츠 배포 프로세스로 생성되는 .cab 파일의 미리 구성된 최대 크기는 10MB이지만 IIS 7에서 미리 구성된 업로드 한계는 29MB입니다. Office SharePoint Server 2007에서는 하나의 내보낸 파일을 여러 .cab 파일로 분할하지 않습니다. 따라서 Office SharePoint Server 2007 사이트에 10MB 미만으로 압축할 수 없는 하나의 문서가 있고 결과적으로 .cab 파일 크기가 IIS 7 기본 업로드 한계인 29MB를 초과하면 콘텐츠 배포 작업에 실패합니다.

자세한 내용은 KB 문서 925083, Windows SharePoint Services 3.0 사이트에서 문서 라이브러리로 대용량 파일을 업로드하는 경우 "요청 시간 초과" 오류 메시지가 표시됨(https://go.microsoft.com/fwlink/?linkid=149968&clcid=0x412)을 참조하십시오.

해결 방법

중앙 관리 웹 사이트의 web.config 파일을 수정하고 다음과 유사한 항목을 추가합니다.

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="52428800"/>
         </requestFiltering>
    </security>
</system.webServer>

maxAllowedContentLength 속성은 서버에 업로드할 .cab 파일의 최대 크기를 나타내는 숫자(바이트)입니다. 이 예제에서 52428800은 50MB와 같습니다. 이 값은 배포 환경의 특정 요구에 따라 조정해야 합니다. 조정을 마치면 콘텐츠 배포 작업을 다시 실행합니다.

원본 서버의 디스크 공간이 부족함

증상

Stsadm export 작업을 사용하거나 내보내기 단계에서 콘텐츠 배포 작업에 실패하면 명령 창 또는 이벤트 로그에 "패키지 파일을 만들지 못했습니다. 캐비닛 폴더에 알 수 없는 압축 형식이 있습니다." 오류 메시지가 반환됩니다.

원인

이 문제는 거의 대부분 원본 서버의 디스크 공간이 부족하여 발생합니다.

해결 방법

내보내기 및 압축 단계에서 디스크 공간을 모니터링하고 원본 서버에서 이 작업을 수행하는 데 디스크 공간이 충분한지 확인합니다.

루트 사이트 및 하위 사이트에 정의된 열 이름이 중복됨

증상

콘텐츠 배포 가져오기 프로세스는 사이트 모음과 사이트 사이에서 중복된 열 이름을 처리할 수 없습니다. 이 경우 다음과 같은 오류 메시지가 표시됩니다.

A duplicate name "MyCustomField" was found.

   at Microsoft.SharePoint.SPFieldCollection.AddFieldToWeb(String strXml, Boolean checkDisplayName)

   at Microsoft.SharePoint.SPFieldCollection.AddFieldAsXmlInternal(String schemaXml, Boolean addToDefaultView, SPAddFieldOptions op)

   at Microsoft.SharePoint.Deployment.FieldTemplateSerializer.CreateField(SPWeb web, SerializationInfoHelper infoHelper)

   at Microsoft.SharePoint.Deployment.FieldTemplateSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)

   at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject)

   at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope)

   at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)

   at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)

   at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader)

   at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()

   at Microsoft.SharePoint.Deployment.SPImport.Run()

원인

사이트 모음의 하위 사이트에서 이름이 "MyCustomColumn"인 새 열을 만들고 사이트 모음의 루트 사이트에서 동일한 이름의 열을 만드는 경우 하위 사이트로 돌아가면 동일한 이름의 두 개 열이 표시됩니다. 이러한 구성은 콘텐츠 배포 작업 실패의 원인이 됩니다.

해결 방법

열 이름이 고유한지 확인합니다. 필요한 경우 중복된 열을 삭제하고 하위 사이트 또는 루트 사이트에서 새 이름으로 다시 만듭니다. 이 작업을 마치면 콘텐츠 배포 작업을 다시 실행합니다.

원본 및 대상에서 콘텐츠가 충돌함

증상

대상 서버의 항목이 가져온 항목과 URL은 동일하지만 GUID가 다른 경우 콘텐츠 배포 작업에 실패하고 콘텐츠 배포 보고서에서 다음과 유사한 오류를 반환합니다.

""/A" 웹 사이트 주소가 이미 사용되고 있습니다." 또는 "지정된 이름이 이미 사용 중입니다. 문서의 이름에는 다른 문서나 이 문서 라이브러리의 폴더 또는 폴더와 동일한 이름을 사용할 수 없습니다."

원인

가져오려는 콘텐츠 배포 작업의 항목이 대상 서버에 없거나 현재 배포할 항목보다 이전 버전입니다. 콘텐츠 배포 작업에서 가져올 항목과 URL이 동일한 항목을 찾으면 항목의 GUID를 확인하여 가져올 항목과 같은 항목인지 확인합니다. GUID가 동일하면 대상 서버에서 버전 관리가 사용 가능한 경우 가져오기에서 새 버전을 만들거나 대상 사이트에서 항목을 바꿉니다. GUID가 다르면 오류 메시지가 반환되고 콘텐츠 배포 작업에 실패합니다.

해결 방법

원본 서버에 있는 콘텐츠와 동일한 콘텐츠가 대상 서버에 추가되지 않도록 합니다. 일반적으로 대상 서버에서는 항목을 만드는 작업이 허용되지 않아야 합니다.

대상 웹 응용 프로그램의 최대 업로드 크기가 배포할 파일보다 작음

증상

"웹 관리자가 허용한 최대 길이를 넘으므로 처리할 수 없습니다. 데이터를 줄여서 다시 전송하십시오." 오류 메시지가 나타나며 콘텐츠 배포 작업에 실패합니다.

원인

대상 서버의 웹 응용 프로그램은 종종 기본값을 사용하여 만들어지므로 최대 업로드 크기가 50MB로 설정됩니다. 원본 사이트 모음에 대상 서버의 업로드 한계보다 큰 파일이 있으면 배포에 실패합니다.

참고

콘텐츠 배포 작업이 성공해도 사이트 일부가 배포되지 않을 수 있으므로 작업 상태가 성공이어도 콘텐츠 배포 보고서에 경고 또는 오류가 없는지 확인해야 합니다. 콘텐츠 배포 보고서를 보는 방법에 대한 자세한 내용은 콘텐츠 배포 작업 보고서 보기를 참조하십시오.

해결 방법

대상 서버에서 웹 응용 프로그램의 최대 업로드 크기가 원본 사이트 모음의 가장 큰 항목보다 커야 합니다. 웹 응용 프로그램의 최대 업로드 크기를 변경하는 방법에 대한 자세한 내용은 웹 응용 프로그램 일반 설정 구성을 참조하십시오.

콘텐츠 배포 작업에 실패하면 배포 작업을 다시 실행하면 됩니다. 작업 상태가 성공으로 표시되어 작업이 완료되었지만 보고서에 경고 또는 오류가 있으면 다음 중 하나를 수행합니다.

  • 빈 대상 데이터베이스로 전체 배포를 수행합니다.

    -또는-

  • 배포되지 않은 항목을 수정하여 다음 증분 배포 작업을 실행할 때 해당 항목이 포함되도록 합니다.

원본 라이브러리의 문서가 바이러스에 감염된 것으로 표시됨

증상

원본 서버의 문서가 실제로 바이러스에 감염되지는 않았지만 감염된 것으로 표시될 때가 가끔 있습니다. 이 경우 콘텐츠 배포 보고서에 다음과 유사한 오류 메시지가 포함될 수 있습니다.

Exception from HRESULT: 0x80041050 at Microsoft.SharePoint.Library.SPRequest.GetFileAsByteArray(String bstrUrl, String bstrWebRelativeUrl, Boolean bHonorLevel, Byte iLevel, OpenBinaryFlags grfob) at Microsoft.SharePoint.Deployment.FileSerializer.SaveFile(SerializationInfo info, ExportObjectManager objectManager, ExportDataFileManager fileManager, SPExportSettings settings, SPWeb parentWeb, Boolean isGhosted, String setupPath, String setupPathUser, Byte setupPathVersion, String webRelativeFileUrl, Int32 size, Byte level)

원인

문서를 업로드할 때 업데이트 프로세스에 서명 파일이 있는 등 업로드 중에 바이러스 검사 단계에서 문제가 발생하면 업로드된 파일이 바이러스에 감염된 것으로 잘못 표시될 수 있습니다.

참고

바이러스에 감염된 것으로 표시된 항목은 내보낼 수 없습니다.

해결 방법

파일이 실제로 감염되었는지 확인하려면 특정 오류 코드 0x80041050가 있는지 오류 메시지를 확인해야 합니다. 이 코드가 있으면 항목이 바이러스에 감염된 것입니다. 항목이 바이러스에 감염됨 경우 감염된 항목을 삭제하거나 바이러스 검사 응용 프로그램을 사용하여 치료합니다. 항목이 바이러스에 감염되지 않은 경우 콘텐츠 배포 작업을 다시 시작합니다.

Stsadm import 작업 중에 SQL Server 교착 상태가 발생함

증상

Stsadm import 작업을 사용하여 빈 사이트 모음으로 콘텐츠를 가져오면 종종 가져오는 동안 다른 지점에서 import 작업에 실패합니다. 이 경우 ULS 로그에 다음과 유사한 오류가 포함됩니다.

10/20/2008 12:47:26.59 STSADM.EXE (0x78BC) 0x4FF4 Windows SharePoint Services Database 6f8g Unexpected Unexpected query execution failure, error code 1205. Additional error information from SQL Server is included below. "Transaction (Process ID 123) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction." Query text (if available): "..."

원인

이러한 작업은 보통 비동기 작업에서 가져오기 작업과 상호 작용하는 동안 SQL Server를 실행하는 컴퓨터에서 교착 상태가 발생했음을 나타냅니다. 새 항목을 만들거나 한 위치에서 다른 위치로 이동하는 등 이벤트를 만드는 것과 비슷한 작업을 수행하는 사용자 지정 이벤트 수신기가 사이트 모음에 있는 경우 이러한 이벤트 수신기가 중지되면 SQL Server를 실행하는 컴퓨터에서 교착 상태가 발생합니다.

참고

Stsadm import 작업을 사용하는 경우 이 문제가 발생합니다. 중앙 관리 웹 사이트에서 콘텐츠 배포를 사용하는 경우 Stsadm editcontentdeploymentpath 작업에서 enableeventreceivers 매개 변수를 Yes로 설정하여 이벤트 수신기를 사용하도록 설정해도 이 문제가 발생합니다.

SQL Server는 교착 상태가 발생한 쿼리 중 하나를 가능한 한 빨리 중지하려고 하지만 쿼리에 성공하지 못하였으므로 하위 프로세스(이 경우 Stsadm.exe 및 잠재적으로 보조 프로세스에 해당하는 Qwstimer.exe 또는 타사 가져오기 도구)가 최종 실패할 때까지 해당 프로세스를 계속 실행하기 때문에 이 문제를 분리시키는 것은 쉽지 않습니다.

SQL Server를 실행하는 컴퓨터에 디버거를 연결하고 교착 상태 쿼리가 중지된 지점 바로 앞에 중단점을 설정하여 테스트 환경에서 문제를 분리할 수 있습니다. 그러면 교착 상태가 지속되고 Stsadm.exe 및 다른 관련된 프로세스의 메모리 덤프를 만들 수 있습니다.

해결 방법

문제를 해결하려면 다음 중 하나를 수행해야 합니다.

콘텐츠를 배포하는 동안 제한 시간을 초과함

증상

GB 단위의 여러 콘텐츠를 포함하는 대용량 콘텐츠 배포 작업을 실행하는 경우 압축 단계가 기본 시간 600초(10분)보다 오래 걸려 제한 세간을 초과할 수 있습니다.

원인

가져오기 프로세스에서 콘텐츠 배포 작업 정의를 호스트하는 내보내기 서버는 정기적으로 가져오기 서버를 폴링하여 각 프로세스 단계에서 가져오기 작업 상태를 표시합니다. 이때 간격은 상태 보고서 변경 사이에서 허용되는 최대 시간을 정의하는 제한 시간 값에 기반합니다. 실제로 가져올 때는 보고서가 자주 변경되지만 가져오기 프로세스의 일부 단계가 다른 단계보다 더 오래 걸릴 수 있습니다. 특정 단계에 걸리는 시간이 원격 제한 시간 값을 초과하면 내보내기 서버로 제한 시간이 다시 보고됩니다.

참고

콘텐츠 배포 작업에 이러한 제한 시간 초과 상태가 나타나더라도 가져오기에 실패했음을 의미하는 것은 아니며 상태 업데이트가 구성된 시간에 도달하지 않았음을 나타낼 뿐입니다.

다음 절차에 따라 배포가 성공했는지, 실패했는지를 확인합니다.

콘텐츠 배포 작업 상태를 확인하려면

  1. 중앙 관리 웹 사이트의 위쪽 탐색 모음에서 작업을 클릭합니다.

  2. 작업 페이지의 콘텐츠 배포 섹션에서 콘텐츠 배포 경로 및 작업을 클릭합니다.

  3. 콘텐츠 배포 경로 및 작업 관리 페이지에 있는 제한 시간이 초과된 작업에 대한 메뉴에서 상태 확인을 클릭합니다. 이 옵션은 작업 상태가 시간 초과인 경우에만 표시되고 이 옵션을 통해 작업의 성공 여부를 확인할 수 있습니다.

해결 방법

이 제한 시간 초과 메시지를 표시하지 않으려면 내보내기 서버에서 RemoteTimeout 속성을 조정합니다. 다음 예제 코드에서는 RemoteTimeout 속성 값을 1시간으로 구성합니다.

using System;
using Microsoft.SharePoint.Publishing.Administration;

namespace CustomContentDeployment.Tools
{
    class AdjustContentDeploymentDeploymentSettings
    {
        static void Main(string[] args)
        {
            ContentDeploymentConfiguration config =
ContentDeploymentConfiguration.GetInstance();
            config.RemoteTimeout = 3600;
            config.Update();
        }
    }
}

RemoteTimeout 속성을 사용하는 방법에 대한 자세한 내용은 ContentDeploymentConfiguration.RemoteTimeout 속성(Microsoft.SharePoint.Publishing.Administration)(영문)(https://go.microsoft.com/fwlink/?linkid=149970&clcid=0x412)을 참조하십시오.

오류: changeToken은 현재 변경 로그를 시작하기 전 시간을 나타냅니다.

증상

"오류: changeToken은 현재 변경 로그를 시작하기 전 시간을 나타냅니다." 오류 메시지가 표시되며 증분 콘텐츠 배포 작업에 실패합니다.

원인

현재 작업과 마지막 증분 배포 작업 사이의 시간 범위가 너무 깁니다. Office SharePoint Server에서는 마지막 증분 배포의 변경 토큰을 증분 콘텐츠 배포 작업 속성에 저장합니다. 새 증분 배포가 실행되면 Office SharePoint Server 2007은 변경 로그의 항목과 이 설정의 변경 토큰을 비교합니다.

기본적으로 변경 로그는 15일 동안 변경 레코드를 유지하도록 구성됩니다. 두 개의 증분 배포 작업 사이의 시간 범위가 이 시간 범위를 초과(예를 들어 마지막 콘텐츠 배포 작업을 실행한 이후 20일이 경과)하면 변경 로그는 마지막 변경 토큰 이전의 항목은 포함하지 않습니다. 따라서 필요한 콘텐츠의 일부만 배포되지 않도록 하기 위해 증분 배포가 시작되지 않습니다.

참고

원본 데이터베이스를 백업 복사본으로 겹쳐쓴 경우 이 오류가 발생할 수도 있습니다. Stsadm restore 작업을 사용하거나 SQL Server 백업 및 Stsadm addcontentdb 작업을 사용하여 데이터베이스를 복원한 경우 변경 로그가 지워집니다. 이 경우 증분 배포가 수행되지 않으며 콘텐츠를 동기화하려면 빈 대상 데이터베이스로 전체 배포를 수행해야 합니다.

해결 방법

다음 절차에 따라 변경 로그 항목을 보존하려는 시간 범위를 늘립니다.

변경 로그 항목을 보존할 시간 범위를 변경하려면

  1. SharePoint 중앙 관리 웹 사이트의 위쪽 링크 모음에서 응용 프로그램 관리를 클릭합니다.

  2. 응용 프로그램 관리 페이지의 SharePoint 웹 응용 프로그램 관리에서 웹 응용 프로그램 일반 설정을 클릭합니다.

  3. 웹 응용 프로그램 일반 설정 페이지에서 원하는 웹 응용 프로그램이 선택되었는지 확인합니다. 그렇지 않은 경우 웹 응용 프로그램 섹션에서 웹 응용 프로그램 메뉴의 웹 응용 프로그램 변경을 클릭합니다. 그런 다음 웹 응용 프로그램 선택 페이지에서 일반 설정을 구성할 웹 응용 프로그램을 클릭합니다.

  4. 올바른 웹 응용 프로그램을 선택한 다음에 변경 로그 섹션에 변경 로그에서 로그 항목을 보존할 일 수를 입력합니다.

  5. 확인을 클릭합니다.

  6. 작업을 마치면 빈 데이터베이스로 전체 콘텐츠 배포를 수행합니다.

    참고

    이전에 사용한 데이터베이스로는 전체 콘텐츠 배포를 수행하지 않습니다. 전체 배포에서는 원본 데이터베이스에서 삭제되지 않은 항목의 삭제 작업을 수행하지 않습니다. 따라서 이 항목은 대상 데이터베이스에 그대로 남아 있게 됩니다.

도움 주신 분

Office SharePoint Server 2007 콘텐츠 게시 팀에서는 이 문서에 도움을 주신 SharePoint 기술 에스컬레이션 엔지니어, Stefan Goßner에게 감사를 드립니다. Stefan Goßner의 블로그 주소는 여기(영문)(https://go.microsoft.com/fwlink/?linkid=150013&clcid=0x412)에서 찾을 수 있습니다.