Служба WCF ASP.Net без кода приложения - PullRequest
3 голосов
/ 08 марта 2011

Я хочу создать Службу WCF для использования на моем веб-сайте ASP.Net (не в проекте), который либо не имеет файла codebehind, который был опцией для традиционной службы в стиле asmx, но не отображается для сервисов wcf или для хранения своего кода в отдельном кодовом проекте и только что раскрытого файла svc.

Я попытался просто переместить файл кода из app_code в мой отдельный проект, но не смог понять, как их связать, так как удаление атрибута codebehind из файла svc немедленно приводит к ошибке.

Ответы [ 2 ]

6 голосов
/ 08 марта 2011

Ваш файл 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 реализует их.

Надеюсь, это поможет!

0 голосов
/ 08 марта 2011

Вот видео, которое демонстрирует, как реализовать WCF таким образом, который (я думаю) позволяет вам делать то, о чем вы спрашиваете. Вы можете разделить свои контракты, услуги и т. Д., Чтобы вы могли легко использовать свой сервис. Вам нужно будет иметь возможность добавлять ссылки, поэтому, возможно, преобразование сайта в веб-приложение может быть лучшим. Это позволит сохранить ваш сервис в отдельном проекте и просто представить его в вашем веб-приложении после ссылки на ваши сервисные проекты dll.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...