我有一个控制台应用程序,它连接到服务引用,允许它向服务发送 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 还很陌生,所以我有可能错过了正确设置 Web 应用程序服务参考的细微差别之一(尽管我很确定我对这两个应用程序都采用了相同的方法)。
我忘记了可能值得一提的事情:控制台应用程序有一个 Main ,它只是创建一个客户端并运行服务,然后退出。在我填写完表单并单击 ASP 按钮后,Web 应用程序运行并执行该功能。