没有App_Code的ASP.Net WCF服务

时间:2011-03-08 17:20:28

标签: asp.net wcf

我想创建一个WCF服务,用于我的ASP.Net网站(不是项目),该网站没有代码隐藏文件,这是传统的asmx样式服务的一个选项,但不会出现 用于wcf服务,或者将其代码存储在单独的代码项目中,并且只是由svc文件公开。

我尝试将代码文件从app_code移动到我的单独项目中,但无法弄清楚如何链接它们,因为从svc文件中删除codebehind属性会立即引发错误。

2 个答案:

答案 0 :(得分:6)

您可以将Web项目中的SVC文件指向包含在单独DLL中的类。您不必在App_Code目录中拥有SVC“代码隐藏”。这很容易做到。您的SVC文件只需要一个属性 - Service。以下是我在工作中使用的示例:

<%@ ServiceHost Service="My.Qualified.Service.Class.Name" %>

我在App_Code文件夹中没有任何代码。此SVC的所有逻辑都包含在一个单独的DLL中(恰好是My.Qualified.Service.Class.dll)。我的服务名称是实现类的名称;这是唯一的警告。

我的web.config(在system.serviceModel内)引用了这样的服务:

<service name="My.Qualified.Service.Class.Name">
    <endpoint address=""
     binding="webHttpBinding"
     contract="My.Qualified.Service.Class.IName" />
</service>

我的服务逻辑是之后的直接WCF代码。我的IName接口定义了我的操作; Name实现了它们。

我希望这有帮助!

答案 1 :(得分:0)

这是一个视频,演示了如何以(我认为)允许您执行您所询问的方式实现WCF。您可以分离合同,服务等,以便轻松重复使用您的服务。您需要能够添加引用,因此将网站转换为Web应用程序可能是最好的选择。这样可以将您的服务保存在一个单独的项目中,并在引用您的服务项目dll之后将其公开在您的Web应用程序中。

http://www.dnrtv.com/default.aspx?showNum=122