23

WCF 服务库有哪些常规类库没有的功能?

编辑:我发布了我自己的答案。我错过了什么吗?它们基本上都只是添加了一些模板类的类库吗?

4

4 回答 4

25

我创建了两者并进行了比较。这就是我发现的。

WCF 服务库

  • 添加对System.Runtime.Serialization和的引用System.ServiceModelSystem.Data.DataSetExtensions不像类库那样包含对的引用。
  • 包含示例服务类IService1CompositeType以及Service1
  • 添加带有 wsHttpBinding 和 mexHttpBinding 服务端点的 app.config
  • 在项目属性中添加/client:"WcfTestClient.exe"为调试命令行选项
  • WCF Options在项目属性中添加一个选项卡。此选项卡包含在同一解决方案中调试另一个项目时启动 WCF 服务主机的选项
  • 在项目属性的签名选项卡中启用一个Sign the ClickOnce manifests选项。此选项在类库中被禁用
于 2010-03-12T18:50:30.747 回答
5

它还在 F5 上运行 WCF 服务主机实用程序。您注意到的/client开关正在传递给 WCF 服务主机,以告诉它要启动哪个客户端。在这种情况下,它被告知启动 WCF 测试客户端。

这给你一个很好的F5体验。在你的服务中设置断点,hit F5,使用Test Client调用你的服务操作,你的断点就会被命中。

于 2010-03-12T19:16:14.903 回答
2

我在 VS 2010 项目中进行了测试,使用类库作为 WCF 托管类型,但无法生成 wsdl 或代理类。

WCF 项目与普通类库不同,因为它在解决方案/项目引用中添加了许多 dll,还添加了(Service1.svc)模板,您需要将其部署在 IIS 服务器中并使用 svcutil.exe 创建 2 个输出文件。

于 2010-09-24T06:50:03.163 回答
0

如此处所述:

在第一个 PropertyGroup 元素中执行以下操作:

查找 ProductVersion 元素。更新产品版本以匹配以下内容:

<ProductVersion>8.0.50727</ProductVersion>

在 AssemblyName 元素下方,添加以下元素:

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

<StartArguments>/client:"WcfTestClient.exe"</StartArguments>

滚动到文件末尾,并在 Import 元素下方添加以下扩展名:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
        <WcfProjectProperties>
          <AutoStart>True</AutoStart>
        </WcfProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
于 2014-02-11T10:20:41.390 回答