После преобразования консольного приложения в веб-приложение asp.net сообщение перестает быть мгновенным - PullRequest
0 голосов
/ 07 октября 2011

У меня есть консольное приложение, которое подключается к справочнику службы, что позволяет ему отправлять вызовы SOAP в службу, которая обновляет информацию в отдельной программе, которой я не владею или не контролирую.Консольное приложение работает нормально, и здесь есть небольшой код, чтобы дать вам представление о том, что я делаю.

public static void PlaceOrders(wsCHRUtilsSoapClient client)
    {
        //identifying vars for patient/provider (not part of orders)
        string patientID = "1234";
        string csn = "123456789";
        string orderingUser = "98765";
        string authProvider = "98765";
        string departmentID = "123456";
        string projectKey = "eProj-CDS";
        string messages;

        //Create order samples
        Order oOne = CreateOrder("LAB", "CBCD", "1", "yay its friday", null, null, null, null, null, null, null, "4",
            "13", null, null, null, null, null, null, null, ", , , ", null, null, null, null, null, null, null, null, null);

        ArrayOfOrderOrder orders = new ArrayOfOrderOrder();
        orders.Add(oOne);

        client.PlaceOrders(patientID, csn, orderingUser, authProvider, departmentID, projectKey, orders, out messages);
    }

Метод CreateOrder просто возвращает объект Order, который по сути является прославленной структурой, содержащейстроки и перечисления, основанные на строках (предложено Intellisense, поэтому я знаю, что они верны из справочника службы).Он прекрасно работает, и я могу сразу же просмотреть опубликованную информацию о хост-программе.

В моем веб-приложении используется тот же метод:

public void PlaceOrders(object sender, EventArgs e)
    {
        wsCHRUtilsSoapClient client = new wsCHRUtilsSoapClient("wsCHRUtilsSoap");
        string messages;
        string orderPatID = this.orderPatID.Text;
        string orderCSN = this.orderCSN.Text;
        string orderOrderingUser = this.orderOrderingUser.Text;
        string orderAuthProvider = this.orderAuthProvider.Text;
        string orderDeptID = this.orderDeptID.Text;
        string orderProjKey = this.orderProjKey.Text;

        string strOrderType = this.orderType.Text;
        string orderCode = this.orderCode.Text;
        string strQuantity = this.quantity.Text;
        string comment = this.comment.Text;
        // ...Like 25 more strings that call their respective ASP textboxes...
        string rflPriority = this.rflPriority.Text;
        string processingInstructions = this.processingInstructions.Text;

        ArrayOfOrderOrder orders = new ArrayOfOrderOrder();
        Order order = CreateOrder(strOrderType, orderCode, strQuantity, comment, strFutureStanding, strStandingCount, standingInterval, 
            expirationDate, strAutoRelease, futureExpectedDate, strFutureApproximate, priority, orderClass, strPatientTaking, route, strDaw, 
            strDispenseQuantity, dispenseUnit, strRefill, sig, modifiers, rflFromProviderID, rflToProviderID, rflToFacility, rflToSpecialty, 
            rflType, rflReason, strRflNumVisits, rflPriority, processingInstructions);

        orders.Add(order);

        client.PlaceOrders(orderPatID, orderCSN, orderOrderingUser, orderAuthProvider, orderDeptID, orderProjKey, orders, out messages);
        client.Close();

Кажется, что веб-приложение время от времени обновляет программу.Я не могу понять шаблон отладки или что-то значимое для того, когда он работает, а не когда он не работает.Когда это действительно обновляет, это обычно не мгновенно.Кто-нибудь может предложить любую помощь?Я довольно плохо знаком с C # и ASP.NET, поэтому есть вероятность, что я упустил один из нюансов правильной настройки ссылки на службу веб-приложения (хотя я почти уверен, что сделал это одинаково для обоих приложений).

Кое-что из того, что я забыл, стоит упомянуть: в консольном приложении есть Main, который просто создает клиента и запускает службу, а затем завершает работу.Веб-приложение запускается и выполняет функцию после того, как я закончу заполнять формы и нажимаю кнопку ASP.

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Как оказалось, это была проблема со стороны поставщика услуг (хотя они изначально настаивали, что это не так). Спасибо всем за участие!

0 голосов
/ 07 октября 2011

Вы должны убедиться, что web.config содержит ту же конфигурацию app.config вашего консольного приложения для службы.

И вам следует убедиться, что вы связали метод "PlaceOrders" с каким-либо обработчиком событий (нажатие кнопки или что-то еще)

...