gpt4 book ai didi

c# - Web 服务中的 WCF 服务主机

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:00 25 4
gpt4 key购买 nike

我接到一个学校项目的任务,要为电影院创建一个分布式系统。要求很简单:有一个电影院预订系统的工作模型(因此我需要电影、房间、演出、预订和一个用于存储个人信息的类)、一个运行它的 Web 服务、一个 Web 界面和一个用于管理的桌面客户端.

我采取了一种灵活的解决方案,创建了一个包含共享对象定义的共享库,以及一个单独的服务器和客户端实现(ServerReference 和 ClientReference)。它被编写为仅通过引用库并创建特定引用的实例(然后使用其 Start() 和 Stop() 方法)即可使用。

我使用 WCF 进行内置于 Controller 层的通信,并使用 Entity Framework 进行数据存储。因为我想要一个动态服务,所以我不得不放弃客户端和服务器的标准 WCF 配置,而是以编程方式创建端点和绑定(bind)。

当我尝试创建一个可以运行 ServerReference 的简单 Web 服务时,问题出现了。由于我在开发过程中想到了类似桌面的环境,所以我就这样创建了它,只是意识到该解决方案不能简单地与 Web 服务一起使用。


现在我的问题如下:共享库是基于 4.5 构建的,但是这个版本放弃了 Web 服务选项。我不想编写另一个 WCF 服务来托管我创建的服务,它必须是严格本地的(基本上,我想要一个控制网站和一个可以创建 ServerReference 实例的 Web 服务,并根据请求触发Start() 或 Stop() 事件)。由于 Web 服务仅为 3.5,我无法使用共享库(并且由于共享库在很大程度上依赖于 4.5 Entity Framework 版本 6.0.1,因此我也无法更改它)。

我的问题是:创建此类服务的首选方式是什么?我真的应该只创建一个运行 ServerReference 的 WCF 服务,还是有更好的方法?

(请注意:该项目的目标是展示我们在本学期学习的有关 Web 服务、Web 设计、并行编程、正则表达式等方面的知识)

最佳答案

在我看来,对于何时使用哪种技术,这似乎是一个根本性的误解。

  1. ASP.NET 项目不是真正意义上的运行。 IIS 调用某些代码/提供结果,但没有像在桌面应用程序中那样运行 => 您不能在 ASP.NET 页面中托管 WCF 服务。
  2. WCF 也可用于创建 Web 服务,但这并不重要,因为 ASP.NET 页面将能够通过任何 channel 与您的 WCF 服务进行通信。
  3. 您可以独立(例如 Windows 服务)或在 IIS 中托管 WCF 服务。对客户来说,您采用哪种方式并不重要,真的。
  4. ASP.NET 项目不是网络服务!

那么你要做的是:

  1. 创建 WCF 服务来执行您需要的所有操作,包括从数据库读取数据和向数据库写入数据
  2. 独立或在 IIS 中托管此 WCF 服务
  3. 创建包含用于管理电影、房间等页面的 ASP.NET 项目。要更改或检索数据,请与 WCF 服务通信。

关于c# - Web 服务中的 WCF 服务主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com