2011-10-07 85 views
0

我有一個控制檯應用程序,它連接到服務引用,允許它將SOAP調用發送到服務,該服務更新單獨程序中的信息,不擁有或控制。控制檯應用程序工作正常,這裏有一些代碼只是爲了讓你知道我在做什麼。在將控制檯應用程序轉換爲asp.net web應用程序後,帖子不再是即時的

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對象,它基本上就是一個包含字符串和基於字符串的枚舉(通過智能感知建議,所以我知道他們是從服務引用正確的)一個華而不實的結構。它的工作非常出色,我可以立即查看主機程序中發佈的信息。

下面是我的web應用同樣的方法:

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(); 

的Web應用程序似乎偶爾更新程序。我無法弄清楚一個調試模式或任何重要的工程時,而不是當它沒有。當它更新時,通常不是即時的。任何人都可以提供任何幫助嗎?我對C#和ASP.NET非常陌生,所以有可能我錯過了正確設置Web應用程序服務引用的細節之一(儘管我非常肯定我對兩個應用程序都採用了相同的方式)。

我忘記了一些值得一提的東西:控制檯應用程序有一個Main,它只是創建一個客戶端並運行服務,然後退出。完成填寫表單並單擊ASP按鈕後,Web應用程序將運行並執行該功能。

回答

0

事實證明,這是在服務引用提供商端的問題(儘管他們最初堅持不是)。感謝大家輸入每個人!

0

您應該確保web.config包含與您的控制檯應用程序app.config相同的服務配置。

你應該確認您綁定的方法「PlaceOrders」一些事件處理(按鈕點擊或其他任何東西)

+0

我有PlaceOrders綁定到ASP按鈕的OnCommand(和CommandName)。它在調試過程中總是碰到函數,所以我知道它總是至少調用它。我在web.config文件中發現了一大塊預加載的註釋XML並將其刪除,但這並沒有真正改變。我從本地主機運行的事實會對服務引用產生巨大影響嗎? – rownage

相關問題