是否可以在自托管HTTP配置的WCF服务(例如自定义HTML或XML文件)上托管自定义数据,而不涉及IIS?我说的是一个实例化自己的EndPoints / listeners的ServiceHost实例。
我有一个使用自托管WCF服务的应用程序,它有一个Windows窗体客户端,但我正在考虑添加一个轻量级的Silverilght接口,但我不想使用IIS的原因与我不想使用成熟的SQL Server - 我试图让整个事情自我打包而没有IIS依赖。 (是的,我知道不涉及IIS不是最佳实践,因为它会使它更不可靠且不太灵活,但此功能不是其中的主要部分。)
如果无法做到这一点,我将不得不在服务器上完整的IIS或客户端上完整的WPF之间做出选择,我只是好奇,如果有人之前发现过这个。
谢谢,
乔恩
答案 0 :(得分:1)
确定找到了答案。 [OperationContract]具有可以分配URL的WebGet属性。然后,与此属性关联的方法可以返回Stream对象。
此处示例:exposing cross-policy file as part of WCF service。 :)
有了这个,我就可以在一个单独的端口上使用Cassini来通过HTTP服务Silverlight .xap,并且仍然指向原始WCF URL处的WCF服务。从理论上讲,我甚至可能就此问题托管.xap并包含来自类似WCF接口的HTML,从而不再需要策略文件。
答案 1 :(得分:1)
我有一个可供下载的示例应用程序,其中包括演示如何从文件托管或流式传输数据以处理(使用WebGet属性)连接到自托管的Silverlight 2 RTM客户端的客户端访问策略要求WCF服务。
该解决方案包括示例Silverlight以及WPF客户端项目和控制台应用程序项目,该项目自托管双工WCF服务,并实例化从ServiceHost派生的类的实例,以便为不同类型的客户端公开适当的端点。 / p>
也许它可能有所帮助...
答案 2 :(得分:0)
您是否考虑了System.Net.HttpListener,甚至是Cassini?也许其中任何一个都可能为您提供所需的东西?
答案 3 :(得分:0)
在Windows服务中托管WCF组件会更好地适应您的用例吗?