我认为 Visual Studio 2010 在这方面存在某种缺陷。尽管System.ServiceModel和System.ServiceModel.Web程序集似乎被自动引用,但默认情况下它们不是,并且相应的命名空间不可用:

要解决此问题,请打开“添加引用”对话框。所有程序集似乎都被引用,但它们都不包含在项目引用列表中:

要真正将所需的程序集添加到您的项目中,请从列表中选择程序集。现在,首先单击“删除” ,然后立即单击“添加”(或者,在列表中双击该程序集)。完成此操作后,“删除/添加”程序集现在将显式出现在项目的引用列表中:

当您键入时,相应的命名空间和类现在可用:

并且可以成功构建项目。
这似乎适用于最广泛的平台包含,即 .NET Framework 4+、Silverlight 4+、WP7+ 和 Windows Store 应用程序。这已经在 VS 2010 上使用最新的 PCL 插件进行了测试。
在 Visual Studio 2012 上,.NET 可移植子集被列为一个整体,并且不能(取消)引用子集的单个程序集。但是,在 VS 2012 上,System.ServiceModel当您创建新的可移植类库时,似乎会自动覆盖对等程序集的访问。
以上所有内容均已在具有非 Express Visual Studio 版本的 Windows 7 系统上进行了测试。