【问题标题】:Building web services without a web server在没有 Web 服务器的情况下构建 Web 服务
【发布时间】:2010-06-19 04:42:57
【问题描述】:

好的,这是不可能的,但我会试着解释一下这里的情况。

假设我们有一些案例,我们需要快速设置网络服务器,以便运行简单的肥皂网络服务(查询数据库等)。

但在 VS 中,在调试 Web 项目时,它会创建一个快速的 ASP.NET 开发服务器,而不依赖于可能安装在 PC 上的实际 IIS。

有没有类似的项目? 这对于小型项目来说是理想的,在这些项目中,一个简单的可执行文件可以让服务器准备就绪,并允许立即执行 Web 服务。

我在网上看过一些东西,比如http://msdn.microsoft.com/en-us/magazine/cc163879.aspxhttp://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2004/05/24/4479.aspx,但它们似乎已经过时了,我不确定它们的效果如何(还没有彻底测试过)

编辑:我已经构建了一个您建议的应用程序。但是,如何使用这种方法实现对服务的 HTTP GET/POST 请求?我在操作合同之后尝试使用 WebGet,但它没有用。例如,我的服务位于http://localhost:8080/Service,我想使用它,例如http://localhost:8080/Service/getMethod?x=2

【问题讨论】:

    标签: web-services iis


    【解决方案1】:

    我相信 Visual Studio 使用的开发服务器基于 Cassini 代码库(其中有一个 fork here)。我还找到了关于托管 asp.net 运行时的 this 文章。它也是在不久前(2004 年)创建的,但自(2008 年)以来一直在更新。我认为很多核心概念可能还是一样的。

    另一种方法是使用 HttpListener 类的滚动您自己的 Web 服务器。如果您想使用它来托管 asmx 类型的服务,这可能需要一些工作,但如果您使用的是 RESTful 服务,那么这个选项也不错(这实际上是 RavenDB 的工作方式,如果您不托管它IIS)。

    【讨论】:

      【解决方案2】:

      WCF 服务可以托管在几乎任何类型的应用程序中,包括 Windows 服务或控制台应用程序。根本不需要网络服务器。

      【讨论】:

        【解决方案3】:

        好的,

        我已经完成了,所以我在这里发布它以帮助任何遇到类似问题的人。 像往常一样创建您的 WCF 服务文件,然后通过使用 ServiceHost(或 WebServiceHost),您可以轻松地创建 WCF 服务。 为了使用 GET http 请求来简化与移动设备(例如 iphone)的通信,您可以在服务方法上方使用 WebGet,并确保您使用 WebHttpBinding 为 WebServiceHost 手动添加服务端点,或使用 WebHttpBinding 和 WebHttpBehavior 为 ServiceHost 添加服务端点。 然后你可以调用你的服务方法如http://localhost:port/webhttpendpointaddress/mymethod?x=2

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-05
          • 2013-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多