我已经创建一个SharePoint事件接收器,对物品更新该火灾。 接收机需要访问AfterProperties和列表项。

当使用IP地址(从SharePoint Web应用程序触发事件接收器 http://10.0.4.50/sites / ),它将引发的 FileNotFoundException异常下,在访问SPItemEventProperties而SITEID时WEBURL。 位于 http://10.0.4.50/sites/companyName 的Web应用程序无法找到。验证是否正确输入了网址。

当使用主机名,在站点集合的设置中指定触发事件接收器的 HTTP:// computerhostname /位点/的companyName 即可。这工作得很好,不会抛出异常。

//Combine Both AfterProperties And ListItem
var ListProperties = new List<KeyValuePair<string, object>>();
ListProperties.AddRange(properties.AfterProperties.ToKeyValue());
ListProperties.AddRange(properties.ListItem.ToKeyValue(p => !p.Sealed));
var AvaliableProperties = ListProperties.Distinct(new KeyValueComparer<object>());
有帮助吗?

解决方案

这不一定是一个SharePoint问题,但最有可能下降到IIS正在主机上配置的方式。特定的网站可以被“绑定”到IP地址和主机名,并且如果主机名不存在于HTTP GET由浏览器然后IIS将返回一个404 NOT FOUND

发送

您可以通过使用浏览器来查看是否可以通过IP地址访问网站验证这一点。

您可以根据需要添加额外的绑定,但只能有一个“默认”的每个IP地址绑定,所以只有一个站点可以存在于(你的情况)10.0.4.50。

周围的情况的可能方式有多个位点存在,但你不能使用主机名可能是添加了一个绑定到端口80这个IP的端口,所以您的网址将成为类似http://10.0.4.50:8080/sites/companyName

其他提示

这不仅是一个IIS的问题,但共享点相关的为好。很多在SharePoint中引用是通过使用URL作为起点进行(只是看的SPSite构造函数)。那么该URL与已知的URL在SharePoint中的配置数据库。 (和OFR文件等在该网站的内容数据库)。

SharePoint使用一种称为备用访问映射到不同的URL分配给Web应用程序的“区”(默认情况下,内联网,互联网,...自定义)系统。如果没有找到“精确”地址,内部的东西都会失败(特别是搜索是非常“敏感网址”)。

然后是IIS部分发挥作用:由于IIS大概有80端口上运行任何其他网站,并没有特定的hostheader(所以它默认为计算机名),或与hostheader设置为机器名称,IIS会挑了请求,因为已将SharePoint扎成这个web应用,SharePoint将尝试处理它,查找该URL时,SharePoint没有找到URL和thne“休息”。

在没有hostheader发生,当你离开hostheader场时,您在SharePoint中创建一个新的Web应用程序清空。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top