Веб-служба WCF перестает отвечать после нескольких повторных вызовов - PullRequest
0 голосов
/ 29 июня 2011

У меня есть приложения Windows, которые связываются с логическим уровнем и уровнем данных с помощью веб-службы WCF.Когда форма открыта, соединение с веб-службой установлено, и соединение сохраняется, пока форма открыта.При закрытии from соединение закрывается с помощью Finalize и Dispose в веб-сервисе.После нескольких открытий и закрытий форм служба перестает отвечать на запросы, и мне нужно сбросить службу, размещенную в IIS, чтобы она снова заработала.Любые советы о том, как решить эту проблему?

это мой контракт на обслуживание:

[ServiceContract]
public interface ICommandInvoker : IDisposable
{
    [OperationContract(IsOneWay = false)]
    void Initialize(TypeInfo managerType, UserInfo userInfo, Dictionary<string,string> settingDic);

    [OperationContract(IsOneWay = true)]
    void Finalize();

    [OperationContract(IsOneWay = false, Action="*")]
    //[CustomOperationBehavior]
    ServerResult Execute(ServerCommand command);

    [OperationContract(IsOneWay = false, Name="Execute Serialized")]
    string Execute(string command, TypeInfo typeInfo);

    [OperationContract(IsOneWay = false, Name = "Execute 2 Non Serialized")]
    ServerResult Execute(TypeInfo mangerType, UserInfo userInfo, ServerCommand command);

    [OperationContract(IsOneWay = false, Name = "Execute 2 Serialized")]
    string Execute(TypeInfo mangerType, UserInfo userInfo, string command, TypeInfo typeInfo);

    [OperationContract(IsOneWay = true)]
    void BeginExecute(ServerCommand command);

и это мое обслуживание

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class BudgetService : BaseCommandInvoker<BudgetDataContext>, IBudgetService
{
    public BudgetService()
    {
    }
}

[ServiceContract(SessionMode = SessionMode.Required)]
public interface IBudgetService : ICommandInvoker
{
}

У вас есть образецпрограмма для этого метода использования Wcf?

спасибо

1 Ответ

0 голосов
/ 29 июня 2011

Может быть много вещей!

Сервер возвращает тайм-аут?Как вы справляетесь с вашими попытками поймать блоки?Есть ли какие-либо ошибкиЯ бы проверил, вышел ли из строя канал, потому что исключение вызовет ошибку канала.Ваш сервис должен выдавать FaultExceptions, если что-то идет не так.

Невозможно реально помочь муравью без дополнительной информации.

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