Библиотека Wcf в Windows Service - PullRequest
       1

Библиотека Wcf в Windows Service

0 голосов
/ 08 декабря 2010

Я использую библиотеку wcf в службе Windows, мой wcf libray содержит один проект dll, который содержит слой доступа к данным.Когда я пытаюсь запустить службу Windows, моя служба Windows не может запустить

Исключение:

Служба не может быть запущена.System.ServiceModel.FaultException: серверу не удалось обработать запрос из-за внутренней ошибки.Для получения дополнительной информации об ошибке либо включите IncludeExceptionDetailInFaults (либо из ServiceBehaviorAttribute, либо из поведения конфигурации) на сервере, чтобы отправить информацию об исключении обратно клиенту, либо включите трассировку в соответствии с документацией Microsoft .NET Framework 3.0 SDK.и проверьте журналы трассировки сервера.

Трассировка стека сервера: в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood (ответ на сообщение, ошибка MessageFault, действие String, версия MessageVersion, FaultConverter faultConverter) в System.ServiceModel.Channels.ServiceChannel.HandleReply (операция ProxyOperationRuntime, ProxyRpc & rpc) в System.ServiceModel.Channels.ServiceChannel.Call (строковое действие, логический oneway, операция ProxyOperationRuntime, выходы Object [], Object [], тайм-аут TimeSpan) в System.Ser.ServiceChannelProxy.InvokeService (...

Для этого мы используем в Config приложения

Мой сервисный вызов

using (ServiceReference1.Service1Client c = new ServiceReference1.Service1Client())
            {
                c.GetZvol();
                c.ChannelFactory.Close();
                c.Close();
            }

Но афДобавляя это, вы получаете другое исключение при запуске службы Windows

Исключение:

Служба не может быть запущена.System.ServiceModel.CommunicationObjectFaptedException: объект связи System.ServiceModel.Channels.ServiceChannel не может использоваться для связи, поскольку он находится в состоянии Faulted.

Трассировка стека сервера: в System.ServiceModel.Channels.CommunicationObject.Close (TimeSpan timeout)

Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateMessageData & msgData, тип Int32) в System.ServiceModel.ICommunicationObject.Close (TimeSpan timeout) в System.ServiceModel.ClientBase 1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase 1.Close () в System.ServiceModel.ClientBase`1.System.IDisposable.Dispose () в классе.Class1.CreateFile () в C: \ Users \ vikram \ Documents \ visual studio 2010 \ Projects \ mcWindowsService \ ClassDemo \ Class1.cs: строка 21 в mcWindowsService.Service1.OnStart (String [] args) ...

Пожалуйста, кто-нибудь скажите мне решение

1 Ответ

1 голос
/ 08 декабря 2010

Вы не можете разместить и вызвать службу wcf из того же процесса.Ваша служба Windows должна размещать только wcf dll, и вы можете звонить на нее из другого процесса, такого как приложение winforms или веб-приложение.

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