繁体   English   中英

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

[英]WCF Service Application (Project) or WCF Service (Website) for WCF REST Service

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

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

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

我已经阅读了有关差异的MSDN文章 ,从它的声音来看,Web站点项目更是我想要的。

我也很感谢您对操作做一个简短的解释,因为我已经找到了有关创建WCF REST应用程序的快速教程,但没有WebSite的教程。

该MSDN文章非常古老。 您需要WCF服务应用程序项目。

对于仅通过JavaScript访问的REST服务,使用Web API可能会更好。 为此,WCF显得过于矫kill过正,尤其是如果您还不了解WCF。 有关差异,请参见http://msdn.microsoft.com/zh-cn/library/jj823172.aspx ,以及http://www.asp.net/web-api/overview/getting-started-with-aspnet-web- api / tutorial-your-first-web-api的教程。

剥皮猫有不止一种方式(随着表情的发展)。 因此,我将告诉您如何为类似的需求创建解决方案(前端将使用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配置”,这将为您提供一个有助于配置文件的工具。 我不会解释所有选项,但是这里是我的配置文件的外观。

Web.Config文件(对不起,它是一个jpg,粘贴xml并没有显示)

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

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

  3. 复制看起来像http://localhost:63718/Service.svc的URL,然后将URITemplate名称添加到末尾(即ping)。 因此,URL看起来像http://localhost:63718/Service.svc/ping

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM