适用于: Visualstudio

本文列出了在 Visual Studio 中使用对 Windows Communication Foundation (WCF) 或 WCF Data Services 的引用时可能出现的常见问题的解决方案。

如果要更新或删除服务引用,请参阅 添加、更新或删除 WCF 数据服务引用

未提供服务地址时出错

选择没有地址的 “转到 ”按钮时,可能会看到一条错误消息,指出“请输入服务的地址”。若要解决此问题,请标识并输入服务的地址。

  • 如果它是解决方案中的服务,则可以使用“ 发现 ”按钮查找并选择它,然后再次尝试“ 转到 ”按钮。
  • 如果它是托管在 Internet 上的某个位置的服务,请按照添加 WCF 服务引用 中的说明添加它。
  • 从服务返回数据时出错

    从服务返回 DataSet DataTable 时,可能会收到“已超出传入消息的最大大小配额”异常。 默认情况下, MaxReceivedMessageSize 某些绑定的 属性设置为相对较小的值,以限制拒绝服务攻击的暴露。 可以增大此值以防止异常。 有关详细信息,请参阅 MaxReceivedMessageSize

    若要修复此错误,请:

  • 解决方案资源管理器 中,双击 app.config 文件将其打开。
  • 找到 属性 MaxReceivedMessageSize 并将其更改为更大的值。
  • 在解决方案中找不到服务

    在“ 添加服务引用 ”对话框中选择“ 发现 ”按钮时,解决方案中的一个或多个 WCF 服务库项目不会出现在服务列表中。 如果服务库已添加到解决方案,但尚未编译,则可能会出现此问题。

    若要修复此错误,请:

  • “解决方案资源管理器 ”中,右键单击“WCF 服务库”项目。
  • 选择“ 生成 ”。
  • 通过远程桌面访问服务时出错

    当用户通过远程桌面连接访问 Web 托管的 WCF 服务,并且用户没有管理权限时,将使用 NTLM 身份验证。 如果用户没有管理权限,用户可能会收到以下错误消息:“HTTP 请求未经授权,客户端身份验证方案'匿名'。 从服务器收到的身份验证标头为'NTLM'。”

    若要修复此错误,请:

  • 在网站项目中,打开 “属性” 页。
  • 在“ 开始选项 ”选项卡上,清除“ NTLM 身份验证 检查”框。
  • 应仅对仅包含 WCF 服务的网站关闭 NTLM 身份验证。 WCF 服务的安全性通过 web.config 文件中的配置进行管理。 这使得 NTLM 身份验证变得不必要。

    生成的类设置的访问级别无效

    在“ 配置服务引用 ”对话框中 ,将“生成的类的访问级别 ”选项设置为“ 内部 ”或“ 友元 ”可能并不总是起作用。 尽管该选项似乎在对话框中设置,但生成的支持类的访问级别 Public 为 。 这是某些类型的已知限制,例如使用 序列化的 XmlSerializer 那些类型。

    调试服务代码时出错

    从客户端代码单步执行 WCF 服务代码时,可能会收到与缺少符号相关的错误。 当作为解决方案一部分的服务被移动或从解决方案中删除时,可能会发生这种情况。

    首次添加对作为当前解决方案一部分的 WCF 服务的引用时,服务项目和服务客户端项目之间会添加显式生成依赖项。 这可以保证客户端始终访问最新的服务二进制文件,这对于调试方案(例如从客户端代码单步执行到服务代码)尤其重要。

    如果从解决方案中删除了服务项目,则此显式生成依赖项无效。 Visual Studio 无法再保证根据需要重新生成服务项目。

    若要修复此错误,请手动重新生成服务项目:

  • 在“工具” 菜单上,选择“选项”
  • “选项 ”对话框中,展开“ 项目和解决方案 ”,然后选择“ 常规 ”。
  • 确保选中“ 显示高级生成配置 检查”框,然后选择“ 确定 ”。
  • 加载 WCF 服务项目。
  • 在“ Configuration Manager ”对话框中,将 “活动解决方案配置 ”设置为 “调试 ”。 有关详细信息,请参阅 如何:创建和编辑配置
  • “解决方案资源管理器 ”中,选择 WCF 服务项目。
  • 在“ 生成 ”菜单上,选择“ 重新生成 ”以重新生成 WCF 服务项目。
  • WCF Data Services不显示在浏览器中

    当 Internet Explorer 尝试在 WCF 数据服务中查看数据的 XML 表示形式时,可能会将数据错误解释为 RSS 源。 确保禁用用于显示 RSS 源的选项。

    若要修复此错误,请禁用 RSS 源:

  • 在 Internet Explorer 中的“工具” 菜单上,选择“Internet 选项”
  • 在“ 内容 ”选项卡上的“ ”部分中,选择 “设置 ”。
  • “源设置” 对话框中,清除“ 打开源阅读视图 检查”框,然后选择“ 确定 ”。
  • 选择“确定” ,关闭“Internet 选项” 对话框。
  •