我想创建一个WCF服务上使用我的ASP.Net网站(不是项目),要么没有代码隐藏文件,这是一个传统风格的ASMX服务的选项,但不会出现成为WCF服务,或将它的代码存储在一个单独的代码项目中,并且只是由svc文件公开.
我尝试将代码文件从app_code移动到我的单独项目中,但无法弄清楚如何链接它们,因为从svc文件中删除codebehind属性会立即引发错误.
您可以将Web项目中的SVC文件指向包含在单独DLL中的类.您不必在App_Code目录中拥有SVC"代码隐藏".这很容易做到.您的SVC文件只需要一个属性 - Service.以下是我在工作中使用的示例:
<%@ ServiceHost Service="My.Qualified.Service.Class.Name" %>
Run Code Online (Sandbox Code Playgroud)
我在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>
Run Code Online (Sandbox Code Playgroud)
我的服务逻辑是之后的直接WCF代码.我的IName界面定义了我的操作; Name实现它们.
我希望这有帮助!