SharePoint 2016 配置向导报错 - The 'ListInternal' attribute is not allowed

本文解决了一种在配置SharePoint2016时创建配置数据库出现的错误,通过分析日志和对比不同版本文件,找到了导致错误的具体字段,并给出了可行的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  配置SharePoint 2016的配置向导中,第三步创建配置数据库报错,然后百度、谷歌了一下,都没有解决,自己看日志搞定,也许会有人遇到类似问题,分享一下。

  1、配置向导的错误截图,如下图:

clip_image002

  2、根据上图找到错误日志,日志里的详细信息,如下:

Failed to create the configuration database.
An exception of type System.Xml.Schema.XmlSchemaException was thrown.  Additional exception information: Feature definition with Id ca7bd552-10b1-4563-85b9-5ed1d39c962a failed validation, file 'fieldswss4.xml', line 68, character 9:
The 'ListInternal' attribute is not allowed.
System.Xml.Schema.XmlSchemaException: Feature definition with Id ca7bd552-10b1-4563-85b9-5ed1d39c962a failed validation, file 'fieldswss4.xml', line 68, character 9:
The 'ListInternal' attribute is not allowed. ---> System.Xml.Schema.XmlSchemaValidationException: The 'ListInternal' attribute is not allowed.
   --- End of inner exception stack trace ---
   at Microsoft.SharePoint.Administration.SPElementManifest.ElementXmlValidationCallBack(Object sender, ValidationEventArgs evtargs)
   at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(String code, String arg)
   at System.Xml.Schema.XmlSchemaValidator.ValidateAttribute(String lName, String ns, XmlValueGetter attributeValueGetter, String attributeStringValue, XmlSchemaInfo schemaInfo)
   at System.Xml.Schema.XmlSchemaValidator.ValidateAttribute(String localName, String namespaceUri, XmlValueGetter attributeValue, XmlSchemaInfo schemaInfo)
   at System.Xml.XsdValidatingReader.ValidateAttributes()
   at System.Xml.XsdValidatingReader.ProcessElementEvent()
   at System.Xml.XsdValidatingReader.Read()
   at System.Xml.XmlReader.MoveToContent()
   at System.Xml.XmlReader.IsStartElement()
   at Microsoft.SharePoint.Utilities.SPUtility.XsdValidateXml(XmlTextReader xmlStreamReader, String friendlyName, String pathXsdFile, String tagExpectedRootNode, Int32 desiredPathVersion, ValidationEventHandler xsdValEventHandler)
   at Microsoft.SharePoint.Administration.SPElementManifest.ValidateDefinition(String pathToFeatureAndElementManifestXsdFile)
   at Microsoft.SharePoint.Administration.SPFeatureDefinition.ValidateElementManifestXml(String pathToFeatureAndElementManifestXsdFile)
   at Microsoft.SharePoint.Administration.SPFeatureDefinition.ValidateDefinition(String pathToFeatureAndElementManifestXsdFile)
   at Microsoft.SharePoint.Administration.SPFeatureDefinitionCollection.AddCore(SPFeatureDefinition featdef, SPSite site, String solutionHash, Boolean fForce, Boolean fDoValidation, String pathToFeatureAndElementManifestXsdFile)
   at Microsoft.SharePoint.Administration.SPFarmFactory.EnsureOutOfBoxFeaturesInstalled(SPFarm farm, String[] rgsOutOfBoxFeatures, Int32 compatibilityLevel)
   at Microsoft.SharePoint.Administration.SPFarmFactory.CreateBasicServices(SPFarm farm)
   at Microsoft.SharePoint.Administration.SPFarmFactory.Create()
   at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, SqlConnectionStringBuilder siteMapDatabase, IdentityType identityType, String farmUser, SecureString farmPassword, SecureString masterPassphrase)
   at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()
   at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()
   at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

  3、找到fieldswss4这个文件,如下图:

clip_image004

  4、用vs打开fieldswss4这个文件,发现确实有这个属性,而且是有报错提醒的,如下图:

clip_image006

  5、在SharePoint 2013环境中找到如下位置,发现也有类似文件,如下图:

clip_image008

  6、对比了一下SharePoint 2013和SharePoint 2016版本的这个报错文件,发现SharePoint 2016多了如下几个Field:

    • SMTotalSize
    • SMLastModifiedDate
    • SMTotalFileStreamSize
    • SMTotalFileCount

  7、把这四个Field的ListInternal属性删掉,然后再运行配置向导,发现运行成功,如下图:

clip_image010

总结

  其实自己也不太清楚这个文件的作用,查了一下也没查到详细说明;不过删掉ListInternal属性确实可以成功运行配置向导,我想如果真的有问题,运行成功以后再还原回来也是可以的(修改之前已备份),不会影响SharePoint的运行。

  当然,有知道这个文件作用的,欢迎留言告知,多谢!

相关错误

  也看到有遇到一样错误的情况,但是因为内存不足,跟自己的情况不符,附后参考吧。

  http://fangdahai.blogspot.hk/2016/05/invalid-feature-definition-error-during.html

转载于:https://www.cnblogs.com/jianyus/p/5519847.html

### 关于Spring 5.0.5.RELEASE中的属性模式和安全配置错误 在Spring框架中,`Attribute pattern not allowed here` 和 `security not allowed configuration error` 的问题通常涉及以下几个方面: #### 属性模式不被允许的原因分析 在Spring Boot 1.3之前,可以使用单一的布尔属性来替代更复杂的`deprecation`元素。然而,在后续版本中这种做法已被废弃,并建议不再继续使用这种方式[^1]。如果当前环境中存在旧版遗留代码,则可能导致此类异常。 对于特定场景下的`attribute pattern`限制问题,可能是因为某些上下文中不允许定义额外的属性模板或者该位置根本不支持指定任何自定义参数。这可能是由于框架内部逻辑变化引起的行为差异所致。 ```java // 示例:尝试设置非法属性可能会抛出异常 @Bean public MyBean myBean() { return new MyBean(); } @Deprecated(since="1.3", forRemoval=true) public class MyBean {} ``` 上述例子展示了如何通过标注类为过时状态从而提示开发者停止使用它;但如果项目仍然依赖这些已标记删除的功能就容易引发冲突或兼容性问题。 --- #### 安全配置方面的潜在风险探讨 当涉及到安全性设定时,需特别注意身份验证过程以及权限管理部分是否正确实现。例如下面这段用于获取当前登录用户的代码片段显示了两种不同情况下的处理方式[^2]: ```java Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { String username = ((UserDetails) principal).getUsername(); // 正常情况下提取用户名 } else { String username = principal.toString(); // 非标准情形下简单转换成字符串形式表示 } ``` 假如这里的`SecurityContext`未初始化好或者是匿名访问状态下运行此段程序也可能造成预期之外的结果甚至崩溃退出应用进程。 另外还需留意HTTP请求头携带的信息是否有误,比如缺少必要的认证令牌字段等都将是常见的触发因素之一。像这样因客户端传递数据不足而产生的服务器端响应如下所示[^3]: ```plaintext 400 Bad Request: KeyError: 'region' ``` 这意味着服务端期望接收到名为`region`的关键字却未能找到对应值进而返回了一个带有描述性的错误消息给调用方知道哪里出了差错以便及时修正提交过来的数据包内容结构使之满足接口文档规定的要求规格说明文件里所记载的各项条款细则等等一系列操作流程环节当中每一个细节都不能忽略过去才行哦! 最后附上一段简单的跨域资源共享(CORS)测试链接作为参考[^4]: ```text http://localhost:9199/spring-annotations/WebAnnotations/UnCrossOrigin.do ``` --- ### 解决方案总结 针对以上提到的各种可能性综合考虑之后给出几条可行措施供参考选用: 1. **升级至最新稳定发行版**: 如果条件许可的话优先推荐把整个工程迁移到更高版本上去享受官方团队持续改进带来的好处减少不必要的麻烦事发生几率。 2. **审查现有代码库是否存在陈旧写法残留现象并逐一替换掉它们**. 3. **加强单元测试覆盖率确保核心业务功能正常运转不受外部干扰影响太大程度范围内保持稳定性良好表现水平线上环境部署前务必经过充分验证确认无虞后再行动以免酿成更大规模事故损失惨重难以挽回局面出现后悔莫及啊朋友们记住啦!!!** ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值