Ваш файл SVC в вашем веб-проекте может указывать на класс, который содержится в отдельной DLL. Вам не нужно, чтобы ваш SVC-код находился в вашем каталоге App_Code. Это очень легко сделать. Ваш 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
реализует их.
Надеюсь, это поможет!