gpt4 book ai didi

.net - 我应该在 IIS 中托管我的 WCF 服务吗?

转载 作者:行者123 更新时间:2023-12-03 20:12:52 25 4
gpt4 key购买 nike

所以我正在设计一个 WCF 服务。我对 WCF 没有经验,我正在尝试决定它是应该托管在 IIS 中,还是应该托管在自定义 Windows 服务中。或者其他选项?

需要考虑的事项:

  • 它需要在启动时从数据库加载数据。
  • 它需要跨请求维护这些数据,而不是每次都加载它。
  • 它需要同时处理多个请求。
  • 它需要在端点方面尽可能可配置。
  • 它将大量调用 native dll。

  • 我怀疑在 IIS 中托管它会简化某些事情,但我不确定在这种情况下这是否是一个好主意。

    我有哪些选择,它们的优缺点是什么?

    最佳答案

    您基本上需要查看三个选项:

    1) 在 IIS6 (Windows Server 2003/2003 R2) 中托管:在这种情况下,您只能托管 HTTP 协议(protocol) - 没有别的。这本身就是一个很大的限制,你不能使用例如netTcp 用于 Intranet 方案。

    2) 在 IIS7/WAS (Vista, Server 2008) 中托管:这在支持的协议(protocol)方面为您提供了更多选择,并且托管环境起初看起来像是赢家。

    3) 自托管:在这种情况下,完全由您来做任何您需要做的事情来托管和运行您的服务。

    如果您暂时放弃选项#1(如果您只有 IIS6 可用,我将始终使用自托管),这取决于 IIS7 与自托管。

    IIS7 为您提供“按需激活”,例如您的服务代码并非始终在内存中,但会在请求进入时被加载和实例化。这可能是一个加号。

    另一方面,在 IIS7/WAS 中托管会剥夺您指定自己的端点的能力 - 您的端点以及服务地址是您的“MyService.svc”文件所在的虚拟目录 - 期间。你不能以任何方式改变它,形状或形式。

    自托管可能看起来需要做很多工作 - 但它确实为您提供了最大的灵 active :您可以根据需要选择协议(protocol),您可以按照自己喜欢的方式设置自己的寻址方案,并且您可以完全控制什么什么时候完成。如果您需要做一些额外的工作来托管服务等,您可以引入自己的自定义 ServiceHost。

    除非您只是稍微玩弄一下 WCF,否则我总是会推荐并投票支持自托管 - 如果您需要在 Windows NT 服务中始终运行 WCF 服务(这是生产环境的最佳解决方案) ,如果您正在开发/调试,您可以完全在控制台应用程序中托管您的 WCF 服务,您可以在闲暇时启动和停止。

    所以长话短说:最后,如果你真的想控制正在发生的事情,我总是建议自托管。

    一旦微软的新“都柏林”服务器插件问世——可能在 .NET 4 发布之后的某个时间,可能在 2010 年初——这可能会改变,但这还为时过早。

    希望这可以帮助。

    马克

    关于.net - 我应该在 IIS 中托管我的 WCF 服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225851/

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