Запустите C # Program на сервере и управляйте им через страницу WCF / ASP - PullRequest
0 голосов
/ 19 мая 2011

Я написал программу на C # с использованием Visual Studio 2010. В настоящее время это консольное приложение, и в идеале я хочу, чтобы эта программа работала на сервере. Он регистрирует сообщения в базе данных SQL, которые я могу просматривать через веб-сайт без проблем, но я хочу иметь возможность управлять программой на C # и вызывать методы удаленно через веб-сайт в браузере. Я определил эти методы, которые содержат вызовы других методов в программе, таких как ArticleOrganizer.reprocessArticle (a, 0):

[ServiceContract]
public interface IRemotePrimeService
{
    [OperationContract]
    void ProgramRestart();

    [OperationContract]
    void ProcessArticleAgain(Article a);

}


public class RemotePrimeService : IRemotePrimeService {

    public void ProgramRestart() {

        Console.WriteLine("Restart requested remotely. Program restarting.");
        Application.Restart();
    }

    public void ProcessArticleAgain(Article a) {
        // Log the activity
        a.MessageLog = "Reprocessing requested remotely. Article sent to Stage 0 of pipeline.";
        // start the article through the processing again
        ArticleOrganizer.reprocessArticle(a, 0);
    }


}

Это то, что я хочу иметь возможность вызывать удаленно. Кажется, что службы в WCF - это то, как можно это сделать, но можно ли разместить это консольное приложение C # на сервере, как оно есть, без необходимости переписывать его как веб-приложение? Я прочитал много документации, особенно на MSDN, но был бы признателен за простой шаг за шагом из моих лучших действий. Я установил и настроил IIS на своем компьютере для проверки в качестве локального хоста.

Заранее большое спасибо за совет

1 Ответ

0 голосов
/ 19 мая 2011

Сохраняйте это простым и используйте простую асинхронную систему, управляемую событиями.

Например: введите очередь, в которой могут храниться сообщения для приложения.Приложение (будь то консоль или служба) может читать очередь, когда у нее есть время, и выполнять запросы.Очередь может быть MSMQ или таблицей SQL.Прекрасно работает до тех пор, пока вам не понадобится мгновенная обратная связь, как в большинстве случаев в подобных системах.

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