C# WCF REST服务的WCF服务应用程序(项目)或WCF服务(网站)

C# WCF REST服务的WCF服务应用程序(项目)或WCF服务(网站),c#,wcf,visual-studio,rest,iis,C#,Wcf,Visual Studio,Rest,Iis,我想为我即将编写的项目(用C#)创建一个RESTful WCF服务。前端将使用JavaScript,由另一个程序员制作,因此他必须能够从同一个本地网络访问我的服务 当我想在IIS中创建一个新项目时,我看到还有一个新网站的选项,我也可以在其中选择WCF服务 如果我希望能够在IIS中托管我的应用程序(在开发过程中,无需反复发布),那么使用哪一个是正确的 我已经读过关于差异的文章,从它的声音来看,一个网站项目更符合我的要求 我还想感谢您对如何做做做一个简短的解释,因为我已经找到了创建WCF REST应

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

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

如果我希望能够在IIS中托管我的应用程序(在开发过程中,无需反复发布),那么使用哪一个是正确的

我已经读过关于差异的文章,从它的声音来看,一个网站项目更符合我的要求


我还想感谢您对如何做做做一个简短的解释,因为我已经找到了创建WCF REST应用程序的快速教程,但对于一个网站来说,这篇MSDN文章非常古老。您需要一个WCF服务应用程序项目


对于仅从JavaScript访问的REST服务,您最好使用Web API。WCF在这方面做得太过分了,尤其是当你还不知道WCF的时候。有关区别和教程,请参阅。

给猫剥皮的方法不止一种(如表达式所示)。所以我将告诉你们我是如何为类似的需求创建解决方案的(front将使用Angular开发)

我决定创建两个:一个wcf服务库(项目)和一个wcf服务(网站)。我之所以选择这个,是因为我更喜欢将类库分离到自己的项目中,以便将来重用,但这家伙很好地解释了为什么服务应用程序更好。选择权在你

我采取的步骤是:

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

  • 创建新的WCF服务库(项目)
  • 创建新的WCF服务(网站)
  • 参考网站中的WCF服务库(右键单击bin文件夹)
  • 重命名iSeries设备和服务文件,并将名称重构为更合适的名称
  • 添加服务接口,例如:

    /// <summary>
    /// Test method that returns pings the service
    /// </summary>
    /// <returns></returns>
    [WebGet(UriTemplate = "ping", ResponseFormat = WebMessageFormat.Json)]
    [OperationContract]
    string Ping();
    
    //
    ///返回ping服务的测试方法
    /// 
    /// 
    [WebGet(UriTemplate=“ping”,ResponseFormat=WebMessageFormat.Json)]
    [经营合同]
    字符串Ping();
    
  • 创建关联的服务方法,例如

    /// <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.
    }
    
    //
    ///用于ping RESTful服务的服务方法
    /// 
    /// 
    公共字符串Ping()
    {
    返回“{Message”+”:“+”Pong“+”}”;
    //这里我返回一个原始json字符串,但您可以返回一个序列化对象(如
    //CompositeType示例)然后将透明地转换为JSON。
    }
    
  • 右键单击Web.Config文件并选择“编辑WCF配置”,这将为您提供一个帮助配置文件的工具。我不打算解释所有的选项,但下面是我的配置文件的外观

  • 更改Service.svc文件以包括您刚刚创建的服务

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

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

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

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


  • 不要将网站用于任何目的。他们非常奇怪。例如,它们是唯一一种没有项目文件的项目。