다음을 통해 공유


SharePoint 솔루션 디버그

Visual Studio 디버거를 사용하여 SharePoint 솔루션을 디버그할 수 있습니다. 디버깅을 시작하면 Visual Studio가 SharePoint 서버에 프로젝트 파일을 배포한 다음, 웹 브라우저에서 SharePoint 사이트의 인스턴스를 엽니다. 다음 섹션에서는 Visual Studio에서 SharePoint 애플리케이션을 디버그하는 방법을 설명합니다.

디버깅 사용

Visual Studio에서 SharePoint 솔루션을 처음 디버그하면 web.config 파일이 디버깅을 사용하도록 구성되지 않은 것으로 대화 상자에 표시됩니다. (web.config 파일은 SharePoint 서버를 설치할 때 생성됩니다. 자세한 내용은 Web.config 파일 작업을 참조하세요.) 이 대화 상자는 디버깅하거나 디버깅을 사용하도록 web.config 파일을 수정하지 않고도 프로젝트를 실행하는 옵션을 제공합니다. 첫 번째 옵션을 선택하면 프로젝트가 정상적으로 실행됩니다. 두 번째 옵션을 선택하면 web.config 파일이 다음과 같이 구성됩니다.

  • 호출 스택(CallStack="true") 켜기

  • Visual Studio에서 사용자 지정 오류 사용 안 함(<customErrors mode="Off" />)

  • 컴파일 디버깅 사용(<compilation debug="true">)

    결과 web.config 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration>
        ...
        <SharePoint>
            <SafeMode MaxControls="200"
                CallStack="true"
                DirectFileDependencies="10"
                TotalFileDependencies="50"
                AllowPageLevelTrace="false">
                ...
            </SafeMode>
        ...
        </SharePoint>
        <system.web>
            ...
            <customErrors mode="Off" />
            ...
            <compilation debug="true">
            ...
            </compilation>
            ...
        </system.web>
        ...
    </configuration>

변경 내용을 취소하고 디버깅을 사용하지 않도록 설정하려면 web.config 파일에서 다음 XML을 변경합니다.

  • 호출 스택(CallStack="false") 끄기

  • Visual Studio에서 사용자 지정 오류 사용(<customErrors mode="On" />)

  • 컴파일 디버깅 사용 안 함(<compilation debug="false">)

F5 디버그 및 배포 프로세스

디버그 모드에서 SharePoint 프로젝트를 실행할 경우 SharePoint 배포 프로세스는 다음 작업을 수행합니다.

  1. 사용자 지정 가능한 배포 전 명령을 실행합니다.

  2. MSBuild 명령을 사용하여 웹 솔루션 패키지(.wsp) 파일을 만듭니다. .wsp 파일에는 필요한 모든 파일 및 기능이 포함되어 있습니다. 자세한 내용은 솔루션 개요를 참조하세요.

  3. SharePoint 솔루션이 팜 솔루션인 경우 지정된 사이트 URL에 대해 IIS 애플리케이션 풀을 재활용합니다. 이 단계에서는 IIS 작업자 프로세스로 잠긴 파일을 해제합니다.

  4. 이전 버전의 패키지가 이미 있는 경우 .wsp 파일에서 이전 버전의 기능 및 파일을 반환합니다. 이 단계에서는 기능을 비활성화하고, 솔루션 패키지를 제거한 다음 SharePoint 서버에서 솔루션 패키지를 삭제합니다.

  5. .wsp 파일에 있는 최신 버전의 기능과 파일을 설치합니다. 이 단계에서는 SharePoint 서버에 솔루션을 추가하고 설치합니다.

  6. 워크플로의 경우 워크플로 어셈블리를 설치합니다. 어셈블리 위치 속성을 사용하여 해당 위치를 변경할 수 있습니다.

  7. 범위가 사이트 또는 웹인 경우 SharePoint에서 프로젝트의 기능을 활성화합니다. 팜 및 WebApplication 범위의 기능은 활성화되지 않습니다.

  8. 워크플로의 경우 SharePoint 사용자 지정 마법사에서 선택한 SharePoint 라이브러리, 목록 또는 사이트에 워크플로를 연결합니다.

    참고 항목

    이 연결은 마법사에서 워크플로 자동 연결을 선택한 경우에만 이루어집니다.

  9. 사용자 지정 가능한 배포 후 명령을 실행합니다.

  10. Visual Studio 디버거를 Windows SharePoint Services 프로세스(w3wp.exe)에 연결합니다. 프로젝트 형식에 따라 샌드박스 솔루션 속성을 변경할 수 있고 이 속성의 값이 true로 설정된 경우 디버거는 다른 프로세스(SPUCWorkerProcess.exe)에 연결됩니다. 자세한 내용은 샌드박스 솔루션 고려 사항을 참조하세요.

  11. SharePoint 솔루션이 팜 솔루션인 경우 JavaScript 디버거를 시작합니다.

  12. 웹 브라우저에 적절한 라이브러리, 목록 또는 사이트 페이지를 표시합니다.

    Visual Studio는 각 작업이 완료된 후에 출력 창에 상태 메시지를 표시합니다. 작업을 완료할 수 없는 경우 Visual Studio는 오류 목록 창에 오류 메시지를 표시합니다.

SharePoint 프로젝트 기능

기능은 사이트 정의를 사용하여 사이트 수정을 간소화하는 이식 가능하고 모듈화된 기능 단위입니다. 특정 범위에 대해 활성화할 수 있고 사용자가 특정 목표 또는 작업을 수행하는 데 도움이 되는 WSS(Windows SharePoint Services) 요소 패키지이기도 합니다. 템플릿은 기능으로 배포됩니다.

디버그 모드에서 프로젝트를 실행하는 경우 배포 프로세스는 %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES기능 디렉터리에 폴더를 만듭니다. 기능 이름의 형식은 project name_Featurex(예: TestProject_Feature1)입니다.

기능 디렉터리의 솔루션 폴더에는 기능 정의 파일 및 워크플로 정의 파일이 포함되어 있습니다. 기능 정의 파일(Feature.xml)에서는 프로젝트 기능의 파일에 대해 설명합니다. 프로젝트 정의 파일(Elements.xml)은 프로젝트 템플릿을 설명합니다. Elements.xml솔루션 탐색기에서 찾을 수 있지만 Feature.xml은 솔루션 패키지를 만들 때 생성됩니다. 이러한 파일에 대한 자세한 내용은 SharePoint 프로젝트 및 프로젝트 항목 템플릿을 참조하세요.

워크플로 디버깅

워크플로 프로젝트를 디버깅할 때는 Visual Studio가 해당 형식에 따라 워크플로 템플릿을 라이브러리 또는 목록에 추가합니다. 그런 다음 워크플로 템플릿을 수동으로 시작하거나 항목을 추가 또는 업데이트할 수 있습니다. 그런 다음, Visual Studio를 사용하여 워크플로를 디버그할 수 있습니다.

참고 항목

다른 어셈블리에 대한 참조를 추가할 경우 해당 어셈블리가 전역 어셈블리 캐시(GAC)에 설치되어 있는지 확인합니다. 그렇지 않으면 워크플로 솔루션이 실패합니다. 어셈블리를 설치하는 방법에 대한 자세한 내용은 수동으로 문서 또는 항목에서 워크플로 시작을 참조하세요.

그러나 배포 프로세스에서 워크플로를 시작하지는 않습니다. 워크플로는 SharePoint 웹 사이트에서 시작해야 합니다. Microsoft Office Word 2010과 같은 클라이언트 애플리케이션을 사용하거나 별도의 서버측 코드를 사용하여 워크플로를 시작할 수도 있습니다. SharePoint 사용자 지정 마법사에 지정된 방법 중 하나를 사용합니다.

예를 들어 워크플로를 수동으로 시작할 수 있도록 지정한 경우 라이브러리나 목록의 항목에서 직접 워크플로를 시작합니다. 워크플로를 수동으로 시작하는 방법에 대한 자세한 내용은 수동으로 문서 또는 항목에서 워크플로 시작을 참조하세요.

기능 이벤트 수신자 디버그

기본적으로 Visual Studio SharePoint 애플리케이션을 실행하면 SharePoint 서버에서 해당 기능이 자동으로 활성화됩니다. 그러나 Visual Studio로 기능을 활성화하면 디버거가 아닌 다른 프로세스를 실행하기 때문에 이로 인해 기능 이벤트 수신자를 디버그할 때 문제가 발생합니다. 즉, 중단점과 같은 일부 디버깅 기능이 제대로 작동하지 않습니다.

SharePoint에서 기능의 자동 활성화를 사용하지 않도록 설정하고 기능 이벤트 수신자의 적절한 디버깅을 허용하려면 디버깅하기 전에 프로젝트의 활성 배포 구성 속성 값을 활성화 안 함으로 설정합니다. 그런 다음, Visual Studio에서 SharePoint 애플리케이션의 디버깅을 시작한 후 SharePoint에서 수동으로 기능을 활성화합니다. 기능을 활성화하려면 SharePoint에서 사이트 작업 메뉴를 열고 사이트 설정을 선택한 다음 사이트 기능 관리 링크를 선택하고 기능 옆에 있는 활성화 단추를 선택하여 디버깅을 정상적으로 계속합니다.

강화된 디버깅 정보 사용

Visual Studio 프로세스(devenv.exe), Visual Studio SharePoint 호스트 프로세스(vssphost4.exe), SharePoint 및 WCF 계층 간의 복잡한 상호 작용으로 인해 빌드, 배포 등을 수행하는 동안 발생하는 오류를 진단하는 것이 어려울 수 있습니다. 이러한 오류를 해결하기 위해 향상된 디버깅 정보를 사용할 수 있습니다. 이를 위해 Windows 레지스트리에서 다음 레지스트리 키로 이동합니다.

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\SharePointTools

"EnableDiagnostics" REG_DWORD 값이 없는 경우 수동으로 이 값을 만듭니다. "EnableDiagnostics" 값을 "1"로 설정합니다.

이 키 값을 1로 설정하면 Visual Studio에서 실행하는 동안 프로젝트 시스템 오류가 발생할 때마다 스택 추적 정보가 출력 창에 표시됩니다. 고급 디버깅 정보를 사용하지 않도록 설정하려면 EnableDiagnostics를 다시 0으로 설정하거나 이 값을 삭제합니다.

다른 SharePoint 레지스트리 키에 대한 자세한 내용은 Visual Studio의 SharePoint 도구에 대한 디버그 확장을 참조하세요.