다음을 통해 공유


SharePoint 솔루션 문제 해결

Visual Studio 디버거를 사용하여 SharePoint 솔루션을 디버깅할 때는 다음 문제나 경고가 발생할 수 있습니다. 자세한 내용은 Debugging SharePoint Workflow Solutions을 참조하십시오.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 프로젝트 및 프로젝트 항목 이름의 문자 제한
  • 사용자 지정 필드를 만드는 경우의 오류
  • 배포 후 사이트 만들기 페이지에서 영어가 아닌 새 사이트 정의가 나타나지 않음
  • 클린 시스템에 워크플로 프로젝트가 배포될 때 오류가 나타남
  • 사용자가 디버깅 중에 업데이트된 이미지를 보려면 브라우저에서 응용 프로그램 페이지를 새로 고쳐야 함
  • 오류: 사이트 위치가 올바르지 않음
  • 사이트 삭제 웹 이벤트가 이벤트 수신자 프로젝트에서 발생하지 않음
  • 비즈니스 데이터 연결 모델 프로젝트에서 식별자 이름이 변경된 후 배포 오류가 나타남
  • SharePoint에서 비주얼 웹 파트를 보려고 하면 오류가 나타남
  • 작업 폼 필드가 포함된 가져온 다시 사용할 수 있는 워크플로가 실행될 때 오류가 나타남
  • 이름을 바꾼 가져온 목록 인스턴스가 실행될 때 오류가 나타남
  • SharePoint 디버깅 세션이 IIS에 의해 종료됨
  • 자동 취소를 수행하면 SharePoint에서 고아 목록 인스턴스가 남음
  • 원래 SharePoint 솔루션이 내보낸 버전으로 대체됨
  • 디버깅을 시작할 때 오류가 나타남
  • 관련 항목

프로젝트 및 프로젝트 항목 이름의 문자 제한

프로젝트와 프로젝트 항목 이름에는 SharePoint 2010의 배포 경로에서 유효한 문자만 포함될 수 있습니다. 다른 문자는 허용되지 않습니다.

오류 메시지

"잘못된 문자" 오류 메시지

해결 방법

SharePoint 프로젝트 및 프로젝트 항목 이름의 경우 다음 문자만 사용합니다.

  • 영숫자 ASCII 문자

  • 공백

  • 마침표(.)

  • 쉼표(,)

  • 밑줄(_)

  • 파선(-)

  • 백슬래시(\)

프로젝트가 패키지될 때 유효성 검사 규칙은 배포되는 각 파일의 배포 경로 속성에 이러한 유효한 문자가 포함되어 있는지 확인합니다.

사용자 지정 필드를 만드는 경우의 오류

Visual Studio 2010에서 사용자 지정 필드는 XML로 정의됩니다. 필드가 정의되어 있지 않거나 특정 형식을 사용하여 참조되는 경우 오류가 발생할 수 있습니다.

오류 메시지

패키지 시 "잘못된 문자" 오류 메시지

해결 방법

필드 정의의 ID는 중괄호로 묶은 GUID여야 합니다. 다음 예제를 참조하십시오.

<Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
    Type="Note" 
    Name="PatientName" 
    DisplayName="Patient Name" 
    Group="A Custom Group">
</Field>.

콘텐츠 형식의 필드 참조는 시작/끝 요소(<FieldRef></FieldRef>)를 사용하는 대신 빈 요소 형식(<FieldRef />)을 사용하여 정의해야 합니다. 예를 들면 다음과 같습니다.

<FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
    Name="PatientName" 
    DisplayName="Patient Name" 
    Required="TRUE"/>

필드의 소스 XML에 잘못된 형식이나 유효하지 않은 XML 파일과 같은 문제가 있는 경우 "파일을 구문 분석할 수 없음" 오류가 발생합니다.

배포 후 사이트 만들기 페이지에서 영어가 아닌 새 사이트 정의가 나타나지 않음

영어가 아닌 Visual Studio 2010 버전(로캘 ID가 1033이 아닌 버전)을 사용하여 새 사이트 정의를 만들고 배포한 후 SharePoint 사용자 지정 탭이 템플릿 선택 상자에 나타나지 않고 새 사이트 템플릿이 새 SharePoint 사이트 페이지에 나타나지 않습니다.

오류 메시지

없음

해결 방법

이 문제는 webtemp_SiteDefinitionProject1.xml과 같은 webtemp 사이트 정의 구성 파일의 경로 속성에 잘못된 값이 있기 때문에 발생합니다. 배포 위치 아래에 있는 webtemp 파일의 경로 속성에서 1033을 적절한 로캘 ID로 변경합니다. 예를 들어, 일본어 로캘을 사용하려면 값을 1041로 변경합니다. 자세한 내용은 MSDN 웹 사이트의 Locale IDs Assigned by Microsoft를 참조하십시오.

클린 시스템에 워크플로 프로젝트가 배포될 때 오류가 나타남

이 문제는 클린 시스템에 Visual Studio 2010의 워크플로 프로젝트를 배포하는 경우 발생합니다. 클린 시스템은 Visual Studio 2010 및 SharePoint를 새로 설치했지만 워크플로 프로젝트를 배포하지 않은 컴퓨터입니다.

오류 메시지

SharePoint 목록을 찾을 수 없습니다. 워크플로 기록.

해결 방법

이 오류는 워크플로 기록 목록이 없기 때문에 발생합니다. 개발 환경이 클린 시스템이기 때문에 워크플로가 배포되지 않으며 워크플로 기록 목록이 아직 없습니다. 이 문제를 해결하려면 워크플로 마법사를 다시 열어 워크플로 기록 목록이 만들어지도록 합니다.

워크플로 마법사에 다시 들어가려면

  1. 솔루션 탐색기에서 워크플로 노드를 선택합니다.

  2. 속성 창에서 줄임표(…) 단추가 있는 임의의 속성에서 줄임표 단추를 클릭합니다.

사용자가 디버깅 중에 업데이트된 이미지를 보려면 브라우저에서 응용 프로그램 페이지를 새로 고쳐야 함

HTML 이미지 컨트롤과 같이 이미지를 표시하는 컨트롤이 있는 응용 프로그램 페이지가 포함된 SharePoint 솔루션을 디버깅하는 경우 이미지의 변경 내용을 표시하려면 브라우저에서 페이지를 새로 고쳐야 합니다.

오류: 사이트 위치가 올바르지 않음

이 문제는 SharePoint Server 2010이 설치되어 있지 않은 경우 발생할 수 있습니다. 또한 SharePoint 사용자 지정 마법사에서 지정된 SharePoint 웹 사이트에 대한 관리자 액세스 권한이 없는 경우에도 이 문제가 발생할 수 있습니다.

오류 메시지

  • SharePoint 사이트 위치가 잘못되었습니다.

해결 방법

  • SharePoint Server 2010를 설치합니다.

  • SharePoint 웹 사이트에 대한 관리자 액세스 권한이 있는지 확인합니다. 자세한 내용은 Office Online 문서 포털 사이트 액세스 허용을 참조하십시오.

사이트 삭제 웹 이벤트가 이벤트 수신자 프로젝트에서 발생하지 않음

이벤트 수신자 프로젝트를 만들고 "사이트 삭제 중" 같은 특정 웹 이벤트를 선택하면 해당 이벤트가 발생하지 않습니다.

오류 메시지

없음

해결 방법

이 문제는 사이트 수준 이벤트를 처리하려면 기능 범위가 "사이트"여야 하지만 이벤트 수신자 프로젝트의 기본 기능 범위가 "웹"이기 때문에 발생합니다. 영향을 받는 웹 이벤트는 다음과 같습니다.

  • 사이트 삭제 중(WebDeleting)

  • 사이트 삭제됨(WebDeleted)

  • 사이트 이동 중(WebMoving)

  • 사이트 이동됨(WebMoved)

이 문제를 해결하려면 이벤트 수신자의 기능 범위를 다음과 같이 변경합니다.

이벤트 수신자의 기능 범위를 변경하려면

  1. 기능 디자이너에서 이벤트 수신자의 기능을 엽니다. 이렇게 하려면 솔루션 탐색기에서 .feature 파일을 두 번 클릭합니다.

  2. 범위 옆에 있는 드롭다운 화살표를 클릭합니다.

  3. 드롭다운 목록에서 사이트를 선택합니다.

비즈니스 데이터 연결 모델 프로젝트에서 식별자 이름이 변경된 후 배포 오류가 나타남

이 문제는 BDC(비즈니스 데이터 연결) 모델에서 엔터티의 식별자 이름을 변경한 후 솔루션을 배포하려고 하는 경우 발생합니다.

오류 메시지

  • <model name>에 다음 외부 콘텐츠 형식 활성화 오류가 있습니다.

  • 이름이 '<model name>'인 IMetadataObject의 필드 'name'에 중복되는 값이 있습니다.

해결 방법

이 문제를 해결하려면 수동으로 모델을 삭제한 다음 솔루션을 다시 배포합니다. 모델은 다음 도구 중 하나를 사용하여 삭제할 수 있습니다.

  • SharePoint 2010 중앙 관리. 자세한 내용은 Microsoft TechNet 웹 사이트의 BDC 모델 관리(SharePoint Server 2010)를 참조하십시오.

  • Windows PowerShell. 명령 프롬프트에서 Remove-SPBusinessDataCatalogModel 명령을 입력하여 모델을 삭제할 수 있습니다. 자세한 내용은 Microsoft TechNet 웹 사이트의 일반 cmdlet(SharePoint Server 2010)을 참조하십시오.

SharePoint에서 비주얼 웹 파트를 보려고 하면 오류가 나타남

이 문제는 사용자 정의 컨트롤의 경로 속성이 "CONTROLTEMPLATES\" 문자열로 시작되지 않는 경우 발생합니다.

오류 메시지

  • '/_CONTROLTEMPLATES/<project name>/<Web Part name>/<user control name>.ascx' 파일이 없습니다.

  • '/' 응용 프로그램의 서버 오류

해결 방법

이 문제를 해결하려면

  1. 솔루션 탐색기에서 사용자 정의 컨트롤 파일을 선택합니다. 이 파일의 파일 확장명은 .ascx입니다.

  2. 보기 메뉴에서 속성 창을 클릭합니다.

  3. 속성 창에서 배포 위치 노드를 확장합니다.

  4. 경로 속성의 값이 "CONTROLTEMPLATES\" 문자열로 시작되는지 확인합니다.

작업 폼 필드가 포함된 가져온 다시 사용할 수 있는 워크플로가 실행될 때 오류가 나타남

이 문제는 필드가 있는 작업 폼이 포함된 워크플로를 가져온 다음 이 워크플로를 가져온 동일한 시스템에서 새 워크플로를 실행하는 경우 발생합니다.

오류 메시지

배포 단계 '기능 활성화'에서 오류가 발생했습니다. 기능 [Guid]에 ID [Guid](으)로 정의된 필드가 현재 사이트 모음 또는 하위 사이트에서 발견되었습니다.

해결 방법

이 오류는 Visual Studio에서 다시 사용할 수 있는 워크플로 프로젝트를 가져올 때 작업 폼 필드 ID가 변경되지 않기 때문에 발생하는 필드 ID 충돌의 결과입니다. 가져온 워크플로를 원래 워크플로가 포함된 동일한 서버에 배포하는 경우 필드 ID 충돌이 발생합니다.

이 문제를 해결하려면 찾기 및 바꾸기 기능을 사용하여 모든 가져온 워크플로 파일에서 필드 ID 특성의 값을 변경합니다.

이름을 바꾼 가져온 목록 인스턴스가 실행될 때 오류가 나타남

이 문제는 가져온 목록 인스턴스의 이름을 바꾼 다음 Visual Studio에서 실행하는 경우 발생합니다.

오류 메시지

빌드 오류: 배포 단계 '기능 활성화'에서 오류가 발생했습니다. Template\Features\[import project feature name]\Files\Lists\[old list name]\Schema.xml 파일이 없습니다.

해결 방법

목록 인스턴스를 가져오는 경우 CustomSchema라는 특성이 목록 인스턴스의 Elements.xml 파일에 추가됩니다. Elements.xml에는 목록 인스턴스에 대한 사용자 지정 schema.xml의 경로가 포함됩니다. Visual Studio에서 목록 인스턴스의 이름을 바꾼 경우 사용자 지정 schema.xml의 배포 경로가 변경되지만 CustomSchema 특성의 경로 값은 업데이트되지 않습니다. 따라서 목록 인스턴스에서는 기능이 활성화될 때 CustomSchema 특성으로 지정된 이전 경로에서 schema.xml 파일을 찾을 수 없습니다.

이 문제를 해결하려면 CustomSchema 특성에서 schema.xml 파일의 배포 위치 경로를 업데이트합니다.

SharePoint 디버깅 세션이 IIS에 의해 종료됨

이 문제는 Visual Studio SharePoint 솔루션에서 중단점을 설정하고 F5 키를 눌러 실행한 다음 90초 넘게 중단점에 머무르는 경우 발생합니다.

오류 메시지

디버깅 중이던 웹 서버 프로세스가 IIS(Internet Information Services)에 의해 종료되었습니다. IIS에서 응용 프로그램 풀 ping 설정을 구성하면 프로세스가 종료되지 않도록 할 수 있습니다. 자세한 내용은 도움말을 참조하십시오.

해결 방법

기본적으로 IIS 응용 프로그램 풀은 응용 프로그램이 응답할 때까지 90초 동안 대기한 후 응용 프로그램을 닫습니다. 이 프로세스를 응용 프로그램 "Ping"이라고 합니다. 이 문제를 해결하려면 대기 시간을 늘리거나 응용 프로그램 Ping을 완전히 사용하지 않도록 설정하면 됩니다.

IIS 응용 프로그램 풀 설정에 액세스하려면

  1. IIS 관리자를 엽니다.

  2. 연결 창에서 SharePoint 서버 노드를 확장하고 응용 프로그램 풀을 클릭합니다.

  3. 응용 프로그램 풀 페이지에서 SharePoint 응용 프로그램 풀(대개 "SharePoint - 80")을 선택한 다음 작업 창에서 고급 설정을 클릭합니다.

  4. IIS 시간 제한 전에 대기 시간을 늘리려면 **Ping 최대 응답 시간(초)**의 값을 90초보다 큰 값으로 변경합니다.

  5. IIS Ping을 사용하지 않도록 설정하려면 Ping 사용False로 설정합니다.

자동 취소를 수행하면 SharePoint에서 고아 목록 인스턴스가 남음

이 문제는 다음 단계를 수행하는 경우 발생합니다.

  1. Visual Studio 2010에서 목록 인스턴스가 있는 목록 정의를 만듭니다.

  2. F5 키를 눌러 솔루션을 실행합니다.

  3. 디버깅을 중지하거나 SharePoint 사이트를 닫습니다.

  4. SharePoint 사이트를 다시 열고 목록 인스턴스를 엽니다.

오류 메시지

'/' 응용 프로그램의 서버 오류

해결 방법

이 문제는 SharePoint 솔루션의 디버그 세션을 닫은 후 자동 취소 기능으로 솔루션이 취소되기 때문에 발생합니다. 취소를 통해 SharePoint에서 목록 정의가 삭제되지만 목록의 인스턴스는 삭제되지 않습니다. 기본 목록 정의는 목록 인스턴스에 필요하지 않습니다.

이 문제를 해결하려면 빌드 메뉴에서 배포를 클릭하여 솔루션을 배포합니다. 이때 F5 키를 사용하여 디버깅하면 안 됩니다. 그런 다음 SharePoint에서 목록 인스턴스를 삭제합니다.

원래 SharePoint 솔루션이 내보낸 버전으로 대체됨

SharePoint 솔루션을 내보내고 Visual Studio로 가져온 다음 내보낸 동일한 사이트에 솔루션을 다시 배포하는 경우 원래 SharePoint 솔루션이 대체됩니다. 이 문제는 원래 솔루션이 활성화되지 않은 서버에 솔루션을 배포하는 경우 발생하지 않습니다.

오류 메시지

없음

해결 방법

솔루션을 내보낸 사이트에서 솔루션을 덮어쓰지 않으려면 Visual Studio 프로젝트에서 모든 가져온 기능의 기능 ID와 SolutionID의 GUID를 변경합니다.

디버깅을 시작할 때 오류가 나타남

Visual Studio에서 SharePoint 솔루션의 디버깅을 시작할 때 지정한 키가 사전에 없기 때문에 Visual Studio에서 Web.config 구성 파일을 로드할 수 없다는 오류가 발생합니다.

오류 메시지

Web.config 구성 파일을 로드할 수 없습니다. 파일에서 구성이 잘못된 XML 요소가 있는지 확인한 후 다시 시도하십시오. 다음 오류가 발생했습니다. 지정한 키가 사전에 없습니다.

해결 방법

이 문제를 해결하려면 Visual Studio에서 SharePoint 프로젝트의 사이트 URL 속성 값이 웹 응용 프로그램의 대체 액세스 매핑에 대한 기본 영역에 할당된 URL과 일치하는지 확인합니다. 인트라넷과 같은 다른 영역을 URL에 사용하면 오류가 해결되지 않습니다. 프로젝트의 사이트 URL과 기본 영역의 URL은 동일해야 합니다. 대체 액세스 매핑에 액세스하려면 SharePoint 2010 중앙 관리 유틸리티에서 응용 프로그램 관리를 클릭한 다음 웹 응용 프로그램 아래에서 대체 액세스 매핑 구성 링크를 클릭합니다. 자세한 내용은 웹 응용 프로그램용 영역 만들기를 참조하십시오.

참고 항목

개념

SharePoint 패키징 및 배포 문제 해결

기타 리소스

SharePoint 솔루션 빌드 및 디버깅

Visual Studio의 디버깅