Sharepoint 2010 Featurereceiver sharepoint 2010 xdocument 503

Sharepoint 2010 Featurereceiver sharepoint 2010 xdocument 503,sharepoint-2010,linq-to-xml,http-status-code-503,Sharepoint 2010,Linq To Xml,Http Status Code 503,我的问题似乎与权限有关,但我不确定如何解决它 在我的一个功能的FeatureActivated事件中,我调用了我创建的一个类,该类使用SPWebConfigModification类管理webconfig条目。该类读取我添加到项目中mapped Layouts文件夹中的xml文件 当我将.wsp部署到我的Sharepoint服务器时,一切都安装得很好,但当FeatureActivated事件运行时,它在尝试访问xml文件时抛出503错误。我正在使用powershell脚本远程部署.wsp,我拥有

我的问题似乎与权限有关,但我不确定如何解决它

在我的一个功能的FeatureActivated事件中,我调用了我创建的一个类,该类使用SPWebConfigModification类管理webconfig条目。该类读取我添加到项目中mapped Layouts文件夹中的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));

我最后讨论了这个问题,因为我发现在向Enable SPFeature命令添加-Force开关时,在添加解决方案时确实使用了不同的过程来激活该功能,但在更新解决方案时,该过程不起作用。最终,我只是将XDocument.Load()更改为使用文本阅读器而不是URI。部署WSP时,xml文件始终可用,因为它是包的一部分,因此没有理由使用IIS和webrequest加载xml。

此问题是否涉及代理?我注意到您没有为它设置任何设置。事实证明,问题实际上是Sharepoint在您告诉它安装SPSolution后推出解决方案的方式。Sharepoint将运行执行FeatureReceiver代码的卷展栏的任务分配给OWSTimer.exe。所以我添加了一个带有-Force开关的Enable-SPFeature命令。这会激活WMSPROVHOST.exe进程的功能,该进程可以访问_layouts目录。因此,最初的推出部分起作用,我不得不在其上加上一个强制启用,以使FeatureReceiver代码正常运行。如果我错过了一些东西,我只是意识到我没有回答你的问题。你是说代理服务器吗?目前我的配置中没有代理服务器。