WCF服务应用程序(项目)或WCF服务(网站)用于WCF REST服务

时间:2014-11-21 13:56:47

标签: c# wcf visual-studio rest iis

我想为我即将编写的项目(在C#中)创建RESTful WCF服务。前端将使用JavaScript并由另一个程序员制作,因此他必须能够从同一本地网络访问我的服务。

当我想在IIS中创建一个新项目时,我看到还有一个新网站选项,我也可以选择WCF服务image

如果我希望能够在IIS中托管我的应用程序(在开发中而不必一遍又一遍地发布),那么哪一个将是正确使用的

我已经阅读了关于差异的MSDN Article,从它的声音来看,网站项目更多是我想要的。

我还要感谢关于该做什么的简短说明,因为我已经找到了一个关于创建WCF REST应用程序的快速教程,但没有为WebSite提供

2 个答案:

答案 0 :(得分:1)

MSDN文章非常陈旧。您需要一个WCF服务应用程序项目。

对于仅从JavaScript访问的REST服务,您最好使用Web API。 WCF对此来说太过分了,特别是如果你不熟悉WCF的话。有关差异,请参阅http://msdn.microsoft.com/en-us/library/jj823172.aspx,教程请参见http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

答案 1 :(得分:1)

皮肤猫的方法不止一种(表达方式如此)。所以我会告诉你我是如何为类似的要求创建一个解决方案(前面将使用Angular开发)。

我决定创建两个:wcf服务库(项目)和wcf服务(网站)。我选择这个是因为我更喜欢将类库分成它自己的项目以供将来重用,但是这个人解释了为什么服务应用程序更好https://stackoverflow.com/a/12339815/1005142。选择是你的。

我采取的步骤是:

注意:此示例不包含可能值得研究的身份验证或跨域问题。

  1. 创建新的WCF服务库(项目)
  2. 创建新的WCF服务(网站)
  3. 引用网站中的WCF服务库(RightClick bin文件夹)
  4. 重命名IService和Service文件,并将名称重新命名为更合适的名称。
  5. 添加服务界面,例如:

    /// <summary>
    /// Test method that returns pings the service
    /// </summary>
    /// <returns></returns>
    [WebGet(UriTemplate = "ping", ResponseFormat = WebMessageFormat.Json)]
    [OperationContract]
    string Ping();
    
  6. 创建关联的服务方法,例如

    /// <summary>
    /// Service method to ping the RESTful service
    /// </summary>
    /// <returns></returns>
    public string Ping()
    {
        return "{Message" + ":" + "Pong" + "}";
        //here I return a raw json string, but you could return a serialised object (like the
        //CompositeType example) Then the conversion to JSON would be done transparently.
    }
    
  7. 右键单击Web.Config文件并选择“编辑WCF配置”,这将为您提供一个有助于配置文件的工具。我不打算解释所有的选项,但是我的配置文件看起来如何。

  8. Web.Config file (sorry its a jpg, pasting the xml didnt showup)

    1. 更改Service.svc文件以包含刚刚创建的服务

    2. 构建项目并运行服务网站,该网站应将您带到根目录网页。单击Service.svc,它应该为您提供摘要。

    3. 复制看起来像http://localhost:63718/Service.svc的网址,并将您的URITemplate名称添加到结尾(ping)。因此,网址看起来像http://localhost:63718/Service.svc/ping

    4. 使用链接。使用Fiddler,Chrome / Firefox插件测试链接

    5. 您仍需要发布到IIS。您可以右键单击服务网站,选择“发布网站”,然后配置服务器详细信息