BDC 模型:常见问题
本主题回答一些有关 BDC 模型的常见问题。
上次修改时间: 2010年7月16日
适用范围: SharePoint Server 2010
本文内容
为什么更新操作失败并出现错误"名为‘CustomerId’的字段输入项已提供,但是在命名空间‘WestCoastSales’中‘Customer’实体的‘UpdateCustomer’方法的‘Updater’方法签名中找不到该项"?创建和删除操作运行正常。
我为只启用了基本身份验证的 Internet Information Services (IIS) 上承载的 Web 服务创建了 BDC 模型。现在,当我尝试通过浏览器访问此 Web 服务的 WSDL 时,出现一个表单,要求输入用户名和密码。在这种情况下,如何可以安全地传递凭据,以便可以将 BDC 模型成功导入到 SharePoint 中?
如何才能查看一台计算机上的 BDC 和另一台计算机上的 Web 服务之间的 SOAP 请求和响应?
为什么其他人无法查看我的外部列表?他们获得错误"无法显示该 Web 部件。若要解决该问题,请在与 SharePoint Foundation 兼容的 HTML 编辑器(例如 Microsoft SharePoint Designer)中打开该网页。如果问题持续存在,请与 Web 服务器管理员联系。"
应如何命名 BDC 模型文件?
为什么更新操作失败并出现错误"名为‘CustomerId’的字段输入项已提供,但是在命名空间‘WestCoastSales’中‘Customer’实体的‘UpdateCustomer’方法的‘Updater’方法签名中找不到该项"?创建和删除操作运行正常。
遇到此问题的原因是,虽然您的标识符没有标记为只读,但 Update 方法无法更新标识符值。
如果您的标识符应为只读,请通过将对应于输出参数中的标识符的所有 TypeDescriptor 元素标记为 ReadOnly = "true" 来解决此问题。
备注
您的标识符在创建项时保留只读,并可由用户设置,但在创建后便无法更改。
如果您的标识符不应为只读,则出现此错误的原因可能是您的外部系统 API 不正确。这可能意味着存在以下情况之一:
Update 方法无法更新此特定标识符。
您的模型不正确,因为未正确指定标识符。
您的实体中有多组标识符,并且每组可清晰标识一个 EntityInstance,这不受支持。
备注
为使标识符可更新,外部系统必须在方法签名中获得标识符的以前值和新值。
我为只启用了基本身份验证的 Internet Information Services (IIS) 上承载的 Web 服务创建了 BDC 模型。现在,当我尝试通过浏览器访问此 Web 服务的 WSDL 时,出现一个表单,要求输入用户名和密码。在这种情况下,如何可以安全地传递凭据,以便可以将 BDC 模型成功导入到 SharePoint 中?
您可以使用安全存储传递凭据。在 BDC 模型中将凭据模式设置为 Credentials,然后在相应目标应用程序的安全存储中填充用户标识符或密码。
如何才能查看一台计算机上的 BDC 和另一台计算机上的 Web 服务之间的 SOAP 请求和响应?
Windows Communication Foundation (WCF) 为此目的提供了自己的基础架构来记录消息和跟踪活动。您很可能对消息日志记录(而非活动跟踪)感兴趣。可通过更改 web.config 文件配置日志记录。有关详细信息,请参阅配置消息日志记录。
备注
可通过更改客户端绑定的 web.config 文件配置客户端消息日志记录(SOAP 响应)。可通过更改承载服务的 Web 应用程序的 web.config 文件配置服务器端日志记录(SOAP 请求)。可以使用 SvcTraceViewer.exe 查看记录的消息。有关详细信息,请参阅服务跟踪查看器工具 (SvcTraceViewer.exe)。
为什么其他人无法查看我的外部列表?他们获得错误"无法显示该 Web 部件。若要解决该问题,请在与 SharePoint Foundation 兼容的 HTML 编辑器(例如 Microsoft SharePoint Designer)中打开该网页。如果问题持续存在,请与 Web 服务器管理员联系。"
出现此错误的原因可能有多种。例如,其他人可能无权访问外部系统或元数据。
如果用户因无权访问元数据(默认情况下,只有您有权访问元数据)而获得拒绝访问错误,您可以更改模型或外部内容类型中的访问控制列表 (ACL) 来为用户提供"执行"权限。执行此操作的最简单方法是使用 SharePoint 管理中心的 BDC 管理用户界面来设置权限并将这些权限传播到外部内容类型的子对象。如果必须更精细地控制权限,可以导出模型的资源(只包括权限),更改权限,然后重新导入资源。
应如何命名 BDC 模型文件?
使用 Microsoft Business Connectivity Services (BCS),可以通过 Microsoft SharePoint Designer 2010、Microsoft Visual Studio 2010 或 SharePoint 管理中心的 BDC 管理用户界面来生成 BDC 模型。生成模型后,会向它追加 .bdcm 文件扩展名。
Business Connectivity Services 解决方案部署的要求是解决方案中包括的 BDC 模型应命名为 metadata.xml。BCS 解决方案打包工具(该链接可能指向英文页面)接受此名称的模型或具有 .bdcm 文件扩展名的 BDC 模型。不过,如果您选择创建自己的打包工具或希望手动为使用 Microsoft Visual Studio 2010 中的 Microsoft Office 开发工具创建的 ClickOnce Microsoft Office 解决方案添加部署后操作,则必须重命名 BDC 模型 metadata.xml,而非使用默认的 .bdcm 文件扩展名。