[Web API]将Web App添加到WCF服务解决方案

时间:2016-07-18 13:28:49

标签: wcf asp.net-web-api

我遇到了与WCF服务和Web API相关的问题,但有以下步骤。

  1. 创建一个WCF服务应用程序,即Service1.svc
  2. 右键单击此项目,然后添加 - > Web API - > Web API控制器类
  3. 我可以像这样在WCF解决方案中托管Web API吗?我没有找到任何配置或注册Web API的地方,因此如果我运行此项目,Web API将无法正常运行 代码用于托管web api

    
    
        public class Service1 : IService1
        {
            public Service1()
            {
                var config = new HttpSelfHostConfiguration("http://localhost:8080");
    
                config.Routes.MapHttpRoute(
                    "API Default", "api/{controller}/{id}",
                    new { id = RouteParameter.Optional });
    
                using (HttpSelfHostServer server = new HttpSelfHostServer(config))
                {
                    server.OpenAsync().Wait();
                    Console.WriteLine("Press Enter to quit.");
                    Console.ReadLine();
                }
            }
    
    
    

1 个答案:

答案 0 :(得分:1)

不,您无法将Web API控制器添加到WCF服务项目中并期望它能够正常工作。 WCF和WebAPI在对BCL的依赖性方面几乎没有重叠。

我认为Prashant在他的评论中,在他辩称时非常雄辩:

  

为什么要这样做?

您可以在同一解决方案中同时托管WebAPI 项目和WCF服务项目,但即使您可以这样做,您还希望这样做吗?

如果要通过SOAP和REST公开相同的端点,则只能使用WCF执行此操作。