Asp.net 相同或不同解决方案中的网站项目和WCF项目:优缺点

Asp.net 相同或不同解决方案中的网站项目和WCF项目:优缺点,asp.net,wcf,iis,Asp.net,Wcf,Iis,我有一个VisualStudio解决方案,包含一个网站项目和一系列支持项目(域模型、数据访问等) 我想通过同一域下的URL向相同的底层数据公开API,因此我开发了一个WCF/REST项目来实现这一点(它依赖于同一组域/数据访问项目) 现在,我想知道将WCF服务部署在一个单独的解决方案中,部署在虚拟IIS路径下,与仅将WCF项目放在原始网站解决方案中相比,它的优点和缺点是什么 我想走这条路或那条路,有什么好的理由吗?我对IIS部署没有太多经验。如果您希望自托管服务而不是在IIS中托管服务,或者出于

我有一个VisualStudio解决方案,包含一个网站项目和一系列支持项目(域模型、数据访问等)

我想通过同一域下的URL向相同的底层数据公开API,因此我开发了一个WCF/REST项目来实现这一点(它依赖于同一组域/数据访问项目)

现在,我想知道将WCF服务部署在一个单独的解决方案中,部署在虚拟IIS路径下,与仅将WCF项目放在原始网站解决方案中相比,它的优点和缺点是什么


我想走这条路或那条路,有什么好的理由吗?我对IIS部署没有太多经验。

如果您希望自托管服务而不是在IIS中托管服务,或者出于某种原因希望将服务接口作为程序集共享,那么将其放在单独的程序集中可能会更容易

我建议一个程序集用于服务接口(包括数据合同等),一个用于服务实现,另一个(如果需要)用于自主机(例如Windows NT服务或命令行应用程序)。这是最干净的分离,没有真正的理由不这样做,伊姆霍


Marc

如果您希望自托管服务,而不是在IIS中托管服务,或者出于某种原因希望将服务接口作为程序集共享,那么将其放在单独的程序集中可能会更容易

我建议一个程序集用于服务接口(包括数据合同等),一个用于服务实现,另一个(如果需要)用于自主机(例如Windows NT服务或命令行应用程序)。这是最干净的分离,没有真正的理由不这样做,伊姆霍


马克

我同意。有几次我在web项目中包含了我的.svc文件,但我总是将契约保存在一个公共文件中,并将具体的服务实现保存在一个服务项目中。这正是马克所说的救了我的命。此外,如果您的合同位于单独的库中,您可以在不放弃业务逻辑的情况下分发它。我同意。有几次我在web项目中包含了我的.svc文件,但我总是将契约保存在一个公共文件中,并将具体的服务实现保存在一个服务项目中。这正是马克所说的救了我的命。此外,如果您的合同位于一个单独的库中,您可以在不放弃业务逻辑的情况下分发它。