2014-11-21 186 views
0

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

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

哪一个会使用正确的选项,如果我希望能够在IIS中托管我的应用程序(在开发过程中无需一遍又一遍地发布)

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

而且我也很感谢该怎么做一个简短的说明,因为我已经找到了一个快速教程创建一个WCF REST应用程序,而不是一个网站

+0

请勿使用任何网站的任何内容。他们非常奇怪。例如,他们是唯一没有项目文件的项目。 – 2014-11-22 01:58:45

回答

1

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

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

的步骤我把为:

注:此示例犯规包括这可能是值得研究的认证或跨域问题。

  1. 创建一个新的WCF服务库(项目)
  2. 创建一个新的WCF服务(网站)
  3. 参考WCF服务库的网站(请右键单击bin文件夹)
  4. 重命名IService和服务文件并将名称复制为更适合的内容。
  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配置'这给你一个帮助配置你的文件的工具。我不会解释所有的选项,但继承人如何我的配置文件看起来。

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

  • 更改Service.svc文件,包括您刚才创建

  • 生成项目并运行该服务网站的服务,它应该带你到根目录的网页。点击Service.svc,它应该给你一个总结。

  • 复制看起来像http://localhost:63718/Service.svc的url,并将您的URITemplate名称添加到末尾(这是ping)。所以URL看起来像http://localhost:63718/Service.svc/ping

  • 消耗链接。使用Fiddler Chrome/Firefox插件测试链接

  • 您仍然必须发布到IIS。您可以右键单击服务网站,选择“发布网站”,然后配置您的服务器详细信息