문제

나는 인스턴스를 인스턴스화하려고 노력합니다 SPSite 사용자 정의 프로세스 (MyApp.exe)의 농장 서버에서 전체 URI를 매개 변수로 제공합니다 (http : // mysite : 80/). 또한 계정이 실행되는지 확인했습니다 MyApp.exe ~이다 Site Collection Administrator.

그러나 나는 인스턴스를 만들 수 없습니다 SPSite 내가하려고하는 것은 무엇이든. 항상 던지는 a FileNotFoundException.

누구든지 아이디어가 있습니까?

스택 트레이스 :

Microsoft.sharepoint.spsite..ctor (Spfarm Farm, Uri Requesturi, 부울 컨텍스트, Spusertoken usertoken)
microsoft.sharepoint.spsite..ctor (string requesturl)에서 mycompanyname.service.helperclass.getitemstateinsharepoint (sharepointitem item) mycompanyname development main mycompanyname.sharepoint services helperclass.cs : helperclass.

또 다른 부수적 노트 ... 문제없이 브라우저를 통해 액세스 할 수있는 웹 응용 프로그램 + 사이트 컬렉션이 있습니다.

도움이 되었습니까?

해결책

FilenotFoundException은 SharePoint 구성 데이터베이스에서 요청 된 사이트 수집을 찾을 수없는 경우 SharePoint에 의해 발생합니다. 내 생각에 URL에서 아직 사이트 컬렉션을 만들지 않았다는 것입니다. http : // mysite : 80. 존재하지 않는 사이트 컬렉션의 URL과 함께 새로운 SPSITE 객체를 시도하고 인스턴스화하면 다음 스택 추적이 보입니다.

System.IO.FileNotFoundException : The site http://server/sites/bah could not be found in the Web application SPWebApplication 
Name=SharePoint - 80 Parent=SPWebService.
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(String requestUrl)

사이트 컬렉션의 적절한 URL을 지정하거나 센트럴 관리를 개방하고 새 사이트 컬렉션을 만듭니다.

다른 팁

빌드 속성의 플랫폼 목표를 X64로 변경하면 SharePoint 2010 에서이 문제를 해결했습니다.

이 사이트를 읽으십시오 http://community.bamboosolutions.com/forums/t/8179.aspx OS X64 비트를 실행하고 MSTEST (32BIT)를 사용하는 경우 실패하면 Nunit Works를 사용하십시오 !!!

SharePoint 2010에 액세스하는 콘솔 애플리케이션 인 경우 프로젝트의 빌드 대상이 X64이고 .NET 프레임 워크가 3.5인지 확인하십시오.

이 문제는 더 많은 사용자 권한 문제입니다.

사용자 권한SharePoint 사이트 --- 최소 읽기 권한

SharePoint 서버 --- WSS_ADMIN_WPG 그룹에 추가하십시오

데이터 베이스 --- SharePoint Content DB (사이트 수집 데이터베이스) -DB_OWNER 권한 SharePoint Config DB (SharePoint 설치의 구성 DB) - DB_OWNER 권한

내 블로그에서 더 읽어보십시오

http://sharepointinstallation.blogspot.com/2010/12/minimal-permission-required-to-execute.html

객체 모델이 제공하는 URL이 마음에 들지 않을 수도 있습니다. 사이트 컬렉션을 만든 정확한 URL 또는 대체 액세스 매핑에 구성된 정확한 URL을 제공하지 않으면 반드시 의미가없는 예외가 발생합니다. 당신의 경우 당신은 시도 할 수 있습니다 http://mysite 또는 http://machinename.

예외의 스택 트레이스가 도움이 될 것입니다.

도구 -> 옵션 -> 디버깅 및 디버거가 표시 될 때 예외의 통화 스택에서 파일 이름 인수를 보면서 "내 코드"를 비활성화하여 어떤 파일이 어떤 파일인지, 어떤 파일이 일어나고 있는지에 대한 아이디어를 얻을 수 있다고 생각합니다. (물론 디버깅 할 수있는 경우) 또는 예외 메시지에 이름이 표시 될 수 있습니다.

web.config를 확인하고 파일이 누락 된 구성이 있는지 확인하십시오.

로그를 위해 12 하이브를 찾으십시오. 로그 설정이 올바른 경우 파일이 누락됩니다.

편집 : 모든 DLL이 GAC에 있는지 확인하십시오. web.config 파일이 모든 정보가 포함되어 있는지 확인

최근에 생성자와 의이 문제가 생성자의 Starnge 동작에 의해 원인이 될 수 있음을 발견했습니다.
나는 Moss 2007에 대해 복용하고 있습니다. 전체 사이트 URL을 생성자에게 전달할 때, 그것이 보이는 것은 실제로 URL의 사이트 부분 만 고려하여 웹 응용 프로그램 선택기 제어.
예를 들어, 당신이 가지고있을 때http : // webapp/sitees/site"그리고"http : // weabapp : 22345"현재 선택한 (마지막으로 선택한 선택자에서 선택한 시간)

SPSite site = new SPSite("http://webapp/sites/site")

실제로 사이트 객체를 만들려고합니다.http : // webapp : 22345/sites/site"그리고 실패합니다.

나는 같은 문제가 있었다. 사용자 ID로 콘솔 애플리케이션을 실행하고 싶었습니다. 저는 웹 애플리케이션 소유자 + 농장 관리자입니다. 여전히 응용 프로그램을 실행할 수 없었습니다.

문제는 해결되었습니다

  1. 빌드 속성의 플랫폼 대상을 x64로 변경합니다

  2. 사이트 설정 -> 사용자 및 권한 -> 사이트 수집 관리자에는 두 개의 이름이 있습니다. 다른 이름을 제거하고 작동하기 시작했습니다.

프로젝트 컴파일 대상을 "모든 CPU"로 설정할 수 있습니다. 중요한 것은 MSTEST 호스트 프로세스를 64 비트로 실행하도록 구성하는 것입니다. .TestSettings 파일을 열고 호스트 탭으로 이동하여 "64 비트로 테스트 실행 ..."를 설정하십시오.

이 후에 테스트를 실행할 때 vs가 아무것도 없다고 말하면 테스트 프로젝트를 제거하고 다시 추가합니다 (이에 대한 더 나은 해결 방법을 모릅니다).

도움이되기를 바랍니다!

우리는이 같은 문제가 있었지만 다른 원인에 익숙합니다. 요약은 다음과 같습니다.

  1. 잘못된 주소를 잘못 입력했거나 다른 방법으로 입력했을 수 있습니다.
  2. 프로세스를 실행하는 사용자 계정에는 필요한 권한이 없습니다. 즉, SharePoint 사이트에 대한 권한과 SharePoint Config DB의 DBO 및 Content DB가 없습니다.
  3. 64 비트 서버를 구축 할 때 프로세스는 64 비트 프로세스 (기본값이 64 비트 "모든 CPU") 여야합니다.
  4. 프로세스는 .NET 3.5를 대상으로해야합니다

나는 몇 주 전에 이것에 시달렸다. 궁극적으로 나는 찾을 수없는 파일이 SharePoint 어셈블리 자체라는 것을 발견했습니다. 런타임은 늦은 바인딩을 통해 위성 어셈블리를로드하지 못했습니다.

내 문제에 대한 해결책은 GAC에 SharePoint 12.0.0.0 어셈블리를 등록하는 것이 었습니다. 그것은 당신의 문제와 같은 것처럼 들리지 않고 단지 참고로 들립니다.

우리는 며칠 전에 같은 문제에 직면했으며 솔루션은 SharePoint의 웹 응용 프로그램과 동일한 앱풀을 사용하기 위해 De Spsite 객체를 만들려고하는 응용 프로그램을 설정하는 것이 었습니다.

도움이되기를 바랍니다.

X64 문제의 MSTEST는이 문제의 원인이었습니다. 콘솔 앱에서 작동합니다.

비슷한 종류의 문제가 있습니다.

내 시나리오에서는 콘솔 애플리케이션에서 SPSITE 인스턴스를 만들 수 있었지만 다른 팀 메이트가 그렇게하려고 할 때 응용 프로그램은 위에서 언급 한 것과 동일한 예외를 던졌습니다.

솔루션 : 콘텐츠 DB 서버 상자의 관리자로 다른 팀원을 추가했습니다 (모든 사람에게는 불가능할 수 있음) 코드는 잘 작동하며 오류가 없습니다.

그러나 SharePoint 2010에서도 같은 문제가 있습니다. 그러나 문제는 SharePoint 객체 모델에 액세스하는 웹 서비스와 관련이있었습니다. 이 서비스를 수행 해야하는 앱 풀은 농장 관리자 여야합니다.

Nunit으로 전환하는 것이 모든 사람에게 옵션이 아닐 수도 있습니다.
내 경우, 문제는 64 비트 서버에 있었고 CPU를 확인했지만 (올바른 버전을 선택하고 있었기 때문에) 테스트 설정은 "32 비트 프로세스에서 실행되는 강제 테스트"(GAH! )

MSTEST에서는 테스트-> 테스트 설정 편집-> 추적 및 테스트 영향으로 이동하십시오.
호스트를 선택하십시오.
올바른 버전에 대해 실행 중인지 확인하십시오.Here's what you should be picking

다음은 VS2010 SP1, MSTEST의 체크리스트입니다.

  • .NET 3.5로 테스트를 타겟팅 할 수 있도록 SP1이 필요합니다. .NET 4.0에서는 작동하지 않습니다
  • 사이트로드를 확인하십시오- HyperLink이므로 VS2010 편집기에서 사이트를 직접 시작했습니다.
  • 빌드 설정을 확인하십시오. 서버가 64 비트 인 경우 64 비트를 선택합니다.
  • 제 경우에는 64 비트 서버가 있었지만 X64를 선택하면 실패했습니다! 그것이 나의 첫 번째 단서였습니다.
  • 테스트 설정이 올바른 비트를 지원하는지 확인하십시오.

SharePoint 2010에 액세스하려는 것도 같은 문제가있었습니다.

대상 프레임 워크를 .NET 3.5.-로 변경하여 SharePoint 2010의 지원되는 버전입니다.

제 경우에는 Windows와 함께 로그인 한 계정의 권한 문제였습니다.

SharePoint Management Shell에서 관리자로 실행되는이 명령을 사용해보십시오.

get-spsite 'http : // yoursite/yourcollection'

오류가 발생하면 SharePoint 서버에 앱 풀 사용자 또는 SharePoint를 설치하고 위 명령을 다시 시도하는 데 사용되는 계정에 로그온하십시오.

작동하면 이전 계정에 권한 문제가 있음을 알 수 있습니다. 문제를 해결하려면 동일한 쉘 창 에서이 명령을 실행하고 vs에서 사용하려는 계정을 제공하십시오.

Add -Spshelladmin -username 도메인 사용자

나는 같은 문제가 있었고 아래에서 변경을했고 작동하기 시작했습니다.

  1. Visual Studio의 플랫폼 목표를 x64로 변경합니다
  2. "관리자"모드에서 Visual Studio를 실행하고 있는지 확인하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top