【问题标题】:creating WCF and hosting it on IIS创建 WCF 并将其托管在 IIS 上
【发布时间】:2026-01-09 04:35:02
【问题描述】:

我看过很多关于这个主题的问题和教程,但似乎没有一个能完全回答我的问题。 我正在做一个 3 层项目。我有一个名为 ServiceHandlers 的服务库,它从 microsoft ax 2012 获取数据并将正确的实体放在上面。然后我有一个名为 Services 的 wcf 服务,它从 serviceHandlers 调用这些 get 函数(有对该项目的引用).. 最后是客户端,它可以是 winform、console 或其他。我的问题是我的老板希望我通过 HTTPS 通信将服务放在本地服务器上。现在,如果我只有服务和客户端部分,这将很容易。我只会按照本教程http://debugmode.net/2010/09/07/walkthrough-on-creating-wcf-4-0-service-and-hosting-in-iis-7-5/ ) .. 但是因为我有 serviceHandler 部分,所以一切看起来都一团糟。我应该怎么办 ??我的老板正在休假,我没有人要问,所以我现在几乎什么都没有

【问题讨论】:

  • 如果服务引用了依赖项 (ServiceHandlers.dll),那么这听起来不是问题。只需 bin 部署依赖项。
  • 我在那里看到的教程我在 wcf 服务的 .svc 文件中基本上没有逻辑,只是服务“servicelibrary.services”的东西..在我的情况下有一些逻辑在 wcf 服务项目中,没有任何区别
  • .svc 通常有一个位于后面的“代码隐藏”.svc.cs。但是,不,它不应该有所作为。

标签: c# wcf https


【解决方案1】:

如果您需要独立的 WCF 服务,您可以按照本教程进行操作:How to: Host a WCF service in IIS。其实你需要创建

  • /App_code 带有真实 C# 代码文件的文件夹(就像这里复制/粘贴 cs 文件一样)
  • /bin 包含所有 .DLL 文件的文件夹。您需要一个已经解决所有依赖关系的工作程序(不要忘记包括:System.ServiceModel)。您可以从 VS 的 WCF 服务库模板构建项目本身,并且只需引用您的其他项目/库/资源(不要忘记将它们与您的项目 .dll 文件一起复制
  • 在主“VirtualFolder”(已在 IIS 中转换为应用程序)中放置 .svc 文件和 web.config 文件。 SVC文件构建如下:

    Debug="true" Service="full-name-including-namespace-to-class-that-implements-interface" @>

    希望这将从一开始就奏效。 有无数种可能出错的组合,奇怪的错误和刚刚死去的情况——我无法解释所有这些如果你遇到另一个问题,你可以搜索这个网站寻找解决方案

【讨论】: