我想我的想法是如此专注于IIS和Web应用程序,我无法想到使用自托管WCF服务的麻烦。我一直有IIS的可用性,因此创建一个自托管的WCF服务似乎比我想要的工作更多。我为什么要这样做?
答案 0 :(得分:13)
很多要点:
http://server/virtualdir/yourservice.svc
)决定,而使用自身托管你可以使用http://Server:7171/Services/MegaService
或任何你喜欢的东西)ServiceHost
答案 1 :(得分:2)
例如,让我们考虑在Windows服务中托管的优势:
你也可以考虑
答案 2 :(得分:2)
这都是关于如何使用WCF的。并非总是希望作为服务公开的逻辑需要/可以在IIS中托管。例如:
答案 3 :(得分:1)
如果您运行的是64位Windows,则无法自动编译和运行WCF服务,您必须自行托管。
我在这里询问了一个特殊的情况: Ways to access a 32bit DLL from a 64bit exe
我有一个需要使用32位DLL的64位应用程序。所以我想我只是将32位DLL封装在32位WCF服务中。不行。我无法强制服务运行32位。不得不自己主持。
答案 4 :(得分:0)
一个示例用例是客户端应用程序。您可以在客户端应用程序中自托管WCF服务,以便客户端可以从后端系统接收通知。
答案 5 :(得分:0)
高负载服务net.tcp或net.pipe绑定根本不适用于IIS。 它仅适用于IIS 7 +额外的3项服务:WAS,Net。*听力适配器&端口共享(如果不使用共享,则为事件)。这是非常复杂的解决方案。您必须配置port sharing,但有一天它会因套接字或管道错误而崩溃。 SelfHost不会。
IIS不适用于流式传输。 您不会“直接使用网络流”。您将使用内存缓冲区或临时文件,因此您不会从流式传输中受益。
P.S。这都是关于WCF 3.5& IIS 7.5。我希望下一版本会好得多。