다음을 통해 공유


SharePoint 솔루션 문제 해결

Visual Studio 디버거를 사용하여 SharePoint 솔루션을 디버그할 때 다음과 같은 문제 또는 경고가 발생할 수 있습니다. 자세한 내용은 SharePoint 2007 워크플로 솔루션 디버깅을 참조하세요.

샌드박스가 적용된 시각적 웹 파트의 토큰 제한 사항

샌드박스 솔루션의 시각적 웹 파트는 SharePoint 런타임에서 지원하는 $SPUrl 같은 표준 토큰을 처리할 수 없습니다. 따라서 URL이 확인되지 않으며 다음 예제와 같이 스크립트 요소에서 직접 참조하는 경우 시각적 웹 파트 디자이너의 디자인 보기에서 콘텐츠를 미리 볼 수 없습니다.

<script src="<% $SPUrl:~site/SiteAssets/ListOperations.js %>"></script>

이 제한을 해결하고 토큰을 처리하기 위해 리터럴을 사용하여 참조하십시오.

<asp:literal ID="Literal1" runat="server" Text="<script src='" />
<asp:literal ID="Literal2" runat="server" Text="<% $SPUrl:~site/SiteAssets/ListOperations.js %>" />
<asp:literal ID="Literal3" runat="server" Text="' type='text/javascript' ></script>" />

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

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

오류 메시지

"잘못된 문자" 오류 메시지입니다.

해결 방법

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

  • 영숫자 ASCII 문자

  • 우주

  • 기간(.)

  • 쉼표(,)

  • 밑줄(_)

  • 대시(-)

  • 백슬래시(\)

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

사용자 지정 필드를 만들 때 오류 발생

Visual Studio에서 사용자 지정 필드는 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 버전(즉, 로캘 ID가 1033이 아닌 버전)을 사용하여 사이트 정의를 만들고 배포한 후에는 SharePoint 사용자 지정 탭이 템플릿 선택 상자에 표시되지 않고 새 사이트 서식 파일이 새 SharePoint 사이트 페이지에 나타나지 않습니다.

오류 메시지

없음.

해결 방법

이 문제는 webtemp 사이트 정의 구성 파일(예: webtemp_SiteDefinitionProject1.xml)에 대한 Path 속성의 잘못된 값 때문에 발생합니다. 배포 위치 아래에 있는 webtemp 파일의 Path 속성에서 1033을 적절한 로캘 ID로 변경합니다. 예를 들어 일본어 로캘을 사용하려면 값을 1041로 변경합니다. 자세한 내용은 Microsoft에서 할당한 로캘 ID를 참조하세요.

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

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

오류 메시지

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

해결 방법

이 오류는 워크플로 기록 목록이 누락되어 발생합니다. 개발 환경은 클린 시스템이므로 워크플로가 배포되지 않고 워크플로 기록 목록이 아직 존재하지 않습니다. 이 문제를 해결하려면 워크플로 마법사를 다시 열어 워크플로 기록 목록을 만듭니다.

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

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

  2. 속성 창에서 줄임표 단추가 있는 속성에서 줄임표(...) 단추를 선택합니다.

사용자가 업데이트된 이미지를 보려면 디버깅하는 동안 브라우저에서 애플리케이션 페이지를 새로 고쳐야 합니다.

HTML 이미지 컨트롤과 같은 이미지를 표시하는 컨트롤이 있는 애플리케이션 페이지가 포함된 SharePoint 솔루션을 디버깅하는 경우 브라우저에서 페이지를 새로 고쳐 이미지에 적용된 변경 내용을 표시해야 합니다.

오류: 사이트 위치가 잘못되었습니다.

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

오류 메시지

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

해결 방법

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

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

오류 메시지

없음.

해결 방법

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

  • 사이트가 삭제되고 있습니다(WebDeleting).

  • 사이트가 삭제되었습니다(WebDeleted).

  • 사이트가 이동 중(WebMoving)

  • 사이트가 이동됨(WebMoved)

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

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

  1. 솔루션 탐색기에서 기능 디자이너에서 파일을 두 번 클릭하거나 바로 가기 메뉴를 연 다음 열기를 선택하여 이벤트 수신기의 .feature 파일을 엽니다.

  2. 범위 옆의 화살표를 선택한 다음 표시되는 목록에서 사이트를 선택합니다.

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

이 문제는 BDC(Business Data Connectivity) 모델에서 엔터티의 식별자 이름을 변경한 다음 솔루션을 배포하려고 하면 발생합니다.

오류 메시지

  • < 모델 이름> 에는 다음과 같은 외부 콘텐츠 형식 활성화 오류가 있습니다.

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

해결 방법

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

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

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

SharePoint Server에서 IIS 애플리케이션 풀을 재활용하는 중 배포 오류가 발생했습니다.

이 문제는 IIS 6 WMI 호환성 기능 및 .NET Framework 3.5가 SharePoint Server 컴퓨터에 설치되어 있지 않은 경우에 발생합니다.

오류 메시지

  • 배포 단계 'IIS 애플리케이션 풀 재활용'에서 오류가 발생했습니다. 잘못된 네임스페이스
  • 배포 단계 'IIS 애플리케이션 풀 재활용'에서 오류가 발생했습니다. 작업이 취소되었습니다.

해결 방법

이 문제를 해결하려면 SharePoint Server 컴퓨터에서 Windows 기능 IIS 6 WMI 호환성이 설치되어 있는지 확인합니다.

  • Windows PowerShell. 이 PowerShell 명령인 get-windowsfeature -name Web-WMI를 실행하여 기능이 설치되어 있는지 확인할 수 있습니다. 설치 중으로 표시되지 않는 경우 다음 PowerShell 명령을 실행하여 설치할 수 있습니다. install-windowsfeature -name Web-WMI. 애플리케이션 풀을 재활용하려고 할 때 오류가 계속 발생하면, get-windowsfeature -name NET-Framework-Core 명령을 실행하여 NET Framework 3.5가 설치되어 있는지 확인하고, 설치되어 있지 않으면 install-windowsfeature -name NET-Framework-Core 명령을 실행하세요.

SharePoint에서 시각적 웹 파트를 보려고 할 때 오류가 나타납니다.

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

오류 메시지

  • '/_CONTROLTEMPLATES/<프로젝트 이름 웹 파트 이름>/<>/<사용자 컨트롤 이름>.ascx' 파일이 없습니다.

  • '/' 애플리케이션의 서버 오류입니다.

해결 방법

이 문제를 해결하려면

  1. 솔루션 탐색기에서 파일 이름 확장명이 .ascx인 사용자 제어 파일을 선택합니다.

  2. 메뉴 모음에서[속성 보기>] 창을 선택합니다.

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

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

작업 양식 필드가 포함된 가져온 재사용 가능한 워크플로가 실행되면 오류가 나타납니다.

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

오류 메시지

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

해결 방법

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

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

이름이 바뀐 가져온 목록 인스턴스를 실행할 때 오류가 나타납니다.

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

오류 메시지

빌드 오류: 배포 단계 '기능 활성화'에서 오류가 발생했습니다. 템플릿\기능\[프로젝트기능이름 가져오기]\Files\Lists\[이전목록 이름]\Schema.xml 없습니다.

해결 방법

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

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

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

이 문제는 Visual Studio SharePoint 솔루션에서 중단점을 설정하고 F5 키를 선택하여 실행한 다음 중단점에 90초 이상 남아 있는 경우에 발생합니다.

오류 메시지

디버깅 중인 웹 서버 프로세스가 IIS(인터넷 정보 서비스)에 의해 종료되었습니다. IIS에서 애플리케이션 풀 ping 설정을 구성하여 이 문제를 방지할 수 있습니다. 자세한 내용은 도움말을 참조하세요.

해결 방법

기본적으로 IIS 애플리케이션 풀은 애플리케이션이 응답할 때까지 90초 동안 기다린 후 애플리케이션을 닫습니다. 이 과정을 애플리케이션에 핑을 보내기라고 합니다. 이 문제를 해결하려면 대기 시간을 늘리거나 애플리케이션 ping을 완전히 사용하지 않도록 설정할 수 있습니다.

IIS 앱 풀 설정에 액세스하려면

  1. IIS 관리자를 엽니다.

  2. 연결 창에서 SharePoint 서버 노드를 확장한 다음 애플리케이션 풀 노드를 선택합니다.

  3. 애플리케이션 풀 페이지에서 SharePoint 애플리케이션 풀(일반적으로 "SharePoint - 80")을 선택한 다음 작업 창에서고급 설정 링크를 선택합니다.

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

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

SharePoint에서 자동 철회가 발생하여 고아 목록 인스턴스가 남습니다.

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

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

  2. F5 키를 선택하여 솔루션을 실행합니다.

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

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

오류 메시지

'/' 애플리케이션의 서버 오류입니다.

해결 방법

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

이 문제를 해결하려면 메뉴 모음에서 빌드> 배포를 선택하여 솔루션을배포합니다. ( F5 키를 선택하여 솔루션을 디버그하지 마세요.) 그런 다음 SharePoint에서 목록 인스턴스를 삭제합니다.

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

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

오류 메시지

없음.

해결 방법

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

디버깅이 시작될 때 오류가 나타납니다.

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

오류 메시지

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

해결 방법

이 문제를 해결하려면 Visual Studio에서 SharePoint 프로젝트의 사이트 URL 속성 값이 웹 애플리케이션의 대체 액세스 매핑을 위해 기본 영역에 할당된 URL과 일치하는지 확인합니다. URL에 인트라넷과 같은 다른 영역을 사용하여 오류를 해결할 수 없습니다. 프로젝트의 사이트 URL과 기본 영역의 URL이 일치해야 합니다. 대체 액세스 매핑에 액세스하려면 SharePoint 2010 중앙 관리 유틸리티를 열고 애플리케이션 관리 링크를 선택한 다음 웹 애플리케이션에서 대체 액세스 매핑 구성 링크를 선택합니다. 자세한 내용은 웹 애플리케이션에 대한 영역 만들기를 참조하세요.