我的問題似乎與權限有關,但我不知道如何解決它。Featurereceiver sharepoint 2010 xdocument 503
在我的某個功能的FeatureActivated事件中,我調用了爲使用SPWebConfigModification類管理webconfig條目而創建的類。該類將讀取已添加到項目中映射的佈局文件夾的xml文件。
當我將.wsp部署到我的Sharepoint服務器時,一切都安裝正常,但是當FeatureActivated事件運行時,它在嘗試訪問xml文件時會引發503錯誤。我正在使用powershell腳本遠程部署.wsp,我有PowerShell,iisapp池和owstimer.exe都使用相同的域管理用戶。
我認爲問題是在OWSTIMER.exe的範圍內運行FeatureActivated事件代碼,因此將該服務的登錄更改爲具有對服務器的管理訪問權的域用戶,以查看是否可以解決問題,但不管我得到什麼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