내 문제는 사용 권한과 관련이있는 것 같지만 해결 방법을 모르겠습니다.Featurereceiver sharepoint 2010 xdocument 503
내 기능 중 하나 인 FeatureActivated 이벤트에서 SPWebConfigModification 클래스를 사용하여 웹 구성 항목을 관리하기 위해 만든 클래스를 호출 중입니다. 클래스는 프로젝트의 매핑 된 레이아웃 폴더에 추가 한 xml 파일을 읽습니다.
.wsp를 Sharepoint 서버에 배포하면 모든 기능이 제대로 설치되지만 FeatureActivated 이벤트가 실행되면 xml 파일에 액세스 할 때 503 오류가 발생합니다. PowerShell 스크립트를 사용하여 원격으로 .wsp를 배포하고 PowerShell, iisapp 풀 및 owstimer.exe는 모두 동일한 도메인 관리 사용자를 사용합니다.
FeatureActivated 이벤트 코드가 OWSTIMER.exe의 범위 내에서 실행 중이므로 서비스의 로그온을 서버에 대한 관리 권한이있는 도메인 사용자로 변경하여 서버를 해결할 수 있는지 확인했습니다 문제는 아니지만 내가 503을 얻는 것에 관계없이.
xml 파일의 URL을 추적하고이를 IE에 붙여 넣으면 복사 된 서버에서 문제없이 xml을 다시 가져올 수 있습니다.
필자는 FeatureActivated 이벤트 코드가 서버의 XML 파일에 표시되지 않는 이유를 알아낼 수있는 방법을 알려 줄 수 있습니까?
아래 코드는 FeatureActivated 이벤트에서 호출되어 xml을 읽는 코드입니다.
_contentservice = ContentService;
WriteTraceMessage("Getting SPFeatureProperties", TraceSeverity.Medium, 5);
_siteurl = properties.Definition.Properties["SiteUrl"].Value;
_foldername = properties.Definition.Properties["FolderName"].Value;
_filename = properties.Definition.Properties["FileName"].Value;
_sitepath = properties.Definition.Properties["SitePath"].Value;
WriteTraceMessage("Loading xml from layouts for configuration keys", TraceSeverity.Medium, 6);
xdoc = new XDocument();
XmlUrlResolver resolver = new XmlUrlResolver();
XmlReaderSettings settings = new XmlReaderSettings();
StringBuilder sb = new StringBuilder();
sb.Append(_siteurl).Append("_layouts").Append("/").Append(_foldername).Append("/").Append(_filename);
WriteTraceMessage("Path to XML: " + sb.ToString(), TraceSeverity.Medium, 7);
WriteTraceMessage("Credentials for xml reader: " + CredentialCache.DefaultCredentials.ToString(), TraceSeverity.Medium, 8);
resolver.Credentials = CredentialCache.DefaultCredentials; //this the issue might be here
settings.XmlResolver = resolver;
xdoc = XDocument.Load(XmlReader.Create(sb.ToString(), settings));
이 문제와 관련된 프록시가 있습니까? 나는 당신이 그것에 대한 어떤 설정도하지 않았 음을 주목한다. – Truezplaya
Install-SPSolution으로 말한 후 Sharepoint가 솔루션을 롤아웃하는 방식과 관련하여 실제로 문제가 발생했습니다. Sharepoint는 FeatureReceiver 코드를 실행하는 롤아웃을 실행하는 작업으로 OWSTimer.exe를 작업합니다. 그래서 -Force 스위치와 함께 Enable-SPFeature 명령을 추가했습니다. 이로 인해 _layouts 디렉터리에 대한 액세스 권한이있는 WMSPROVHOST.exe 프로세스가있는 기능이 활성화됩니다. 따라서 초기 롤아웃이 부분적으로 작동하고 FeatureReceiver 코드를 제대로 실행하려면 강제 실행 기능을 사용하여 피기 백해야했습니다. 내가 CestLaVie 길을 따라 뭔가를 놓친다면. – Maxmanzero
방금 내가 당신의 질문에 대답하지 않았다는 것을 깨달았습니다. 프록시 서버를 의미 했습니까? 현재 내 구성에는 프록시 서버가 없습니다. – Maxmanzero