使用 Visual Studio 调试器调试 SharePoint 解决方案时,可能会出现以下问题或警报。 有关详细信息,请参阅 调试 SharePoint 2007 工作流解决方案。
沙盒化视觉 Web 部件中的令牌限制
沙盒解决方案中的视觉 Web 部件无法处理 SharePoint 运行时支持的标准令牌,如 $SPUrl。 因此,URL 未解析,如果直接在脚本元素中引用内容,则无法在视觉 Web 部件设计器中预览设计视图中的内容,如以下示例所示:
<script src="<% $SPUrl:~site/SiteAssets/ListOperations.js %>"></script>
若要解决此限制并解析令牌,请使用字面值引用它:
<asp:literal ID="Literal1" runat="server" Text="<script src='" />
<asp:literal ID="Literal2" runat="server" Text="<% $SPUrl:~site/SiteAssets/ListOperations.js %>" />
<asp:literal ID="Literal3" runat="server" Text="' type='text/javascript' ></script>" />
项目和项目项名称中的字符限制
项目和项目项的名称只能包含 SharePoint 2010 中的部署路径中有效的字符。 不允许使用其他字符。
错误消息
“无效字符”错误消息。
决议
对于 SharePoint 项目和项目项的名称,请仅使用以下字符:
字母数字 ASCII 字符
空间
句点 (.)
逗号 (,)
下划线 (_)
短划线(-)
反斜杠 (\)
打包项目时,验证规则验证要部署的每个文件的部署路径属性是否仅包含这些有效字符。
创建自定义字段时出错
在 Visual Studio 中,自定义字段在 XML 中定义。 如果未使用特定格式定义或引用字段,则可能会出现错误。
错误消息
打包时出现“字符无效”错误消息。
决议
字段定义的 ID 必须是大括号括起来的 GUID,如以下示例所示:
<Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Type="Note"
Name="PatientName"
DisplayName="Patient Name"
Group="A Custom Group">
</Field>.
如以下示例所示,内容类型中的字段引用必须使用空元素格式(<FieldRef />),而不是使用 start/end 元素(<FieldRef/FieldRef><>):
<FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Name="PatientName"
DisplayName="Patient Name"
Required="TRUE"/>
如果字段的源 XML 格式不正确、不是有效的 XML 文件或显示其他问题,则会发生错误“无法分析文件”。
部署后不会在网站创建页中显示新的非英语网站定义
使用非英语版本的 Visual Studio 创建和部署网站定义后(即具有 1033 以外的区域设置 ID 的版本), SharePoint 自定义 项选项卡不会显示在 “模板选择 ”框中,新网站模板不会显示在 “新建 SharePoint 网站 ”页面中。
错误消息
没有。
决议
出现此问题的原因是网站定义配置文件的 Path 属性中的值不正确,例如 webtemp_SiteDefinitionProject1.xml。 在位于部署位置下的 Webtemp 文件的 Path 属性中,将 1033 更改为相应的区域设置 ID。 例如,若要使用日语区域设置,请将值更改为 1041。 有关详细信息,请参阅 Microsoft 分配的区域设置 ID。
在干净系统上部署工作流项目时出现错误
如果在干净系统上的 Visual Studio 中部署工作流项目,则会出现此问题。 全新系统是一台计算机,它安装了 Visual Studio 和 SharePoint,但没有已部署的工作流项目。
错误消息
找不到 SharePoint 列表:工作流历史记录。
决议
发生此错误的原因是缺少工作流历史记录列表。 由于开发环境是一个干净的系统,因此不会部署任何工作流,并且工作流历史记录列表尚不存在。 若要解决此问题,请重新打开工作流向导,这会导致创建工作流历史记录列表。
重新输入工作流向导
在 解决方案资源管理器中,选择工作流节点。
在 “属性” 窗口中,选择具有省略号按钮的任何属性上的省略号(...)按钮。
用户必须在调试时刷新浏览器中的应用程序页才能查看更新的图像
如果要调试包含包含显示图像的控件(如 HTML 图像控件)的应用程序页面的 SharePoint 解决方案,则必须在浏览器中刷新页面以显示对图像所做的任何更改。
错误:站点位置无效
如果未安装 SharePoint Server,则可能会出现此问题。 如果你没有对 SharePoint 自定义向导中指定的 SharePoint 网站具有管理员访问权限,也可能出现此情况。
错误消息
- SharePoint 网站位置无效。
决议
安装 SharePoint Server。
确保你具有对 SharePoint 网站的管理员访问权限。 有关详细信息,请参阅 Office Online 文章 :在 SharePoint Server 中分配或删除服务应用程序的管理员。
事件接收器项目中不会发生网站删除 Web 事件
创建事件接收器项目并选择某些 Web 事件(如“正在删除网站”)时,该事件永远不会发生。
错误消息
没有。
决议
出现此问题的原因是功能范围必须是“站点”来处理站点级事件,但事件接收器项目的默认功能范围是“Web”。 受影响的 Web 事件包括:
正在删除网站 (WebDeleting)
网站已删除(WebDeleted)
网站正在被迁移(WebMoving)
网站已移动(WebMoved)
若要解决此问题,请更改事件接收器的功能范围,如下所示。
更改事件接收器的功能范围
在解决方案资源管理器中,双击文件或打开其快捷菜单,然后选择“打开”,在功能设计器中打开事件接收器的 .feature 文件。
选择 “范围”旁边的箭头,然后在显示的列表中选择 “网站 ”。
更改业务数据连接模型项目中标识符的名称后,会出现部署错误
如果更改业务数据连接(BDC)模型中实体的标识符名称,然后尝试部署解决方案,则会出现此问题。
错误消息
< 模型名称> 存在以下外部内容类型的激活错误...
IMetadataObject 名称为“<model name>”的对象在字段“name”中具有重复值...
决议
若要解决此问题,请手动删除模型,然后再次部署解决方案。 可以使用以下任一工具删除模型:
SharePoint 2010 中央管理。 有关详细信息,请参阅 Microsoft TechNet 网站上的 BDC 模型管理 。
Windows PowerShell。 可以通过在命令提示符处键入以下命令来删除模型: Remove-SPBusinessDataCatalogModel。 有关详细信息,请参阅 Microsoft TechNet 网站上的 常规 cmdlet(SharePoint Server 2010 )。
尝试在 SharePoint Server 上回收 IIS 应用程序池时发生部署错误
如果未在 SharePoint Server 计算机上安装 IIS 6 WMI 兼容性功能和 .NET Framework 3.5,则会出现此问题。
错误消息
- 部署步骤“回收 IIS 应用程序池”中出错:命名空间无效
- 部署步骤“回收 IIS 应用程序池”中出错:任务已取消。
决议
若要解决此问题,请在 SharePoint Server 计算机上检查是否安装了 Windows 功能 IIS 6 WMI 兼容性 ,
- Windows PowerShell。 可以通过运行以下 PowerShell 命令来检查是否已安装该功能: get-windowsfeature -name Web-WMI。 如果未显示为“已安装”,可以通过运行以下 PowerShell 命令来安装它: install-windowsfeature -name Web-WMI。 如果在尝试重新循环应用程序池时仍然看到错误,请确保计算机上也安装了 .NET Framework 3.5,可以通过运行 get-windowsfeature -name NET-Framework-Core 和 install-windowsfeature -name NET-Framework-Core 来安装(如果没有安装)。
尝试在 SharePoint 中查看视觉 Web 部件时出现错误
当用户控件的 Path 属性不以字符串“CONTROLTEMPLATES\”开头时,会出现此问题。
错误消息
文件“/_CONTROLTEMPLATES/<项目名称>/<Web 部件名称>/<用户控件名称>.ascx”不存在。
“/”应用程序中的服务器错误。
决议
解决此问题
在 解决方案资源管理器中,选择用户控件文件,其文件扩展名为 .ascx。
在菜单栏上,选择“ 视图>属性”窗口。
在 “属性” 窗口中,展开 “部署位置” 节点。
确保 Path 属性的值以字符串“CONTROLTEMPLATES\”开头。
当运行包含任务窗体域的导入的可重用工作流时出现错误
如果导入包含具有字段的任务窗体的工作流,然后在从中导入该工作流的同一系统上运行新工作流,则会出现此问题。
错误消息
部署步骤“激活功能”中出错:在当前网站集或子网站中找到功能 [Guid] 中定义的 ID 为 [Guid] 的字段。
决议
此错误是发生字段 ID 冲突的结果,因为 Visual Studio 中的“导入可重用工作流”项目不会更改任务窗体域 ID。 如果在包含原始工作流的同一服务器上部署导入的工作流,则会发生字段 ID 冲突。
若要解决此问题,请使用“查找和替换”功能更改所有导入的工作流文件中字段 ID 属性的值。
运行重命名的导入列表实例时出现错误
如果重命名导入的列表实例,然后在 Visual Studio 中运行它,则会出现此问题。
错误消息
生成错误:部署步骤“激活功能”中出错:文件模板\功能\[导入项目功能名称]\Files\Lists\[旧列表名称]\Schema.xml 不存在。
决议
导入列表实例时,会将名为 CustomSchema 的属性添加到列表实例的 Elements.xml 文件中。 Elements.xml 包括列表实例的自定义 schema.xml 的路径。 在 Visual Studio 中重命名列表实例时,自定义 schema.xml 的部署路径会更改,但 CustomSchema 属性的路径值不会更新。 因此,列表实例无法在激活该功能时由 CustomSchema 属性指定的旧路径中找到 schema.xml 文件。
若要解决此问题,请更新 CustomSchema 属性中 schema.xml 文件的部署位置的路径。
由 IIS 终止的 SharePoint 调试会话
如果您在 Visual Studio 的 SharePoint 解决方案中设置了断点,按下 F5 键运行,并停留在断点处超过 90 秒,则会出现此问题。
错误消息
正在调试的 Web 服务器进程已被 Internet Information Services (IIS) 终止。 可以通过在 IIS 中配置应用程序池 ping 设置来避免此问题。 有关更多详细信息,请参阅帮助。
决议
默认情况下,IIS 应用程序池等待 90 秒,让应用程序在关闭应用程序之前做出响应。 此过程称为“ping”应用程序。 若要解决此问题,可以增加等待时间或完全禁用应用程序 ping。
访问 IIS 应用池设置
打开 IIS 管理器。
在 “连接 ”窗格中,展开 SharePoint 服务器节点,然后选择 “应用程序池 ”节点。
在 “应用程序池 ”页上,选择 SharePoint 应用程序池(通常为“SharePoint - 80”),然后在 “作 ”窗格中,选择“ 高级设置” 链接。
若要在 IIS 超时之前增加等待时间,请将 Ping 最大响应时间(秒) 的值更改为大于 90 秒的值。
若要禁用 IIS ping,请将 “启用 Ping” 设置为 False。
自动缩回会在 SharePoint 中留下一个孤立的列表实例
如果执行以下步骤,则会出现此问题。
在 Visual Studio 中创建具有列表实例的列表定义。
选择要运行解决方案的 F5 键。
停止调试或关闭 SharePoint 网站。
重新打开 SharePoint 网站并打开列表实例。
错误消息
“/”应用程序中的服务器错误。
决议
之所以发生这种情况,是因为关闭 SharePoint 解决方案的调试会话后,自动收回功能会收回解决方案。 撤销操作会从 SharePoint 中删除列表定义,但不会删除列表的实例。 列表实例需要基础列表定义。
若要解决此问题,请在菜单栏上选择“ 生成>部署”来部署解决方案。 (不要通过选择 F5 键来调试解决方案。然后,删除 SharePoint 中的列表实例。
原始 SharePoint 解决方案替换为导出的版本
如果导出 SharePoint 解决方案,然后将该解决方案导入 Visual Studio,并将其部署回导出的同一站点,原始的 SharePoint 解决方案将被替换。 如果将解决方案部署到未激活原始解决方案的服务器,则不会出现此问题。
错误消息
没有。
决议
为了避免覆盖导出解决方案的原网站上的解决方案,请在 Visual Studio 项目中更改 SolutionID 的 GUID 以及所有导入功能的功能 ID。
调试启动时出现错误
开始在 Visual Studio 中调试 SharePoint 解决方案时,错误指示 Visual Studio 无法加载 Web.config 文件,因为给定的键不在字典中。
错误消息
无法加载 Web.config 配置文件。 检查文件是否有格式不正确的 XML 元素,然后重试。 发生以下错误:字典中不存在给定键。
决议
若要解决此问题,请确保 Visual Studio 中 SharePoint 项目的 Site URL 属性值与分配给 Web 应用程序备用访问映射的默认区域的 URL 匹配。 不能通过为该 URL 使用其他区域(例如 Intranet)来解决错误。 项目的网站 URL 和默认区域中的 URL 必须匹配。 若要访问备用访问映射,请打开 SharePoint 2010 管理中心实用工具,选择 应用程序管理 链接,然后在 “Web 应用程序”下选择 “配置备用访问映射 ”链接。 有关详细信息,请参阅 为 Web 应用程序创建区域。