错误:无法找到带有参数{part = {...},storeId = {...},contractId = {...}}的Web服务操作....调用.NET Web Service的ColdFusion 9 - 无法找到带参数的Web服务操作。帮帮我!
我创建了一个.NET Web服务,与ColdFusion页面交谈。当用户在零件号字段中输入零件号然后选中它时,会调用Web服务以获得该零件的适当定价。它如何得到定价在幕后完成,是无关紧要的,而且为了我想要达到的目的,这里显得太复杂了。
这是我竟能导通我有ColdFusion页传递3个变量:部分,STOREID,并contractId。
<cfset vars = structNew()> <cfset vars["contractId"] = "#Trim(Attributes.contract)#"> <cfset vars["part"] = "#Trim(Attributes.part)#"> <cfset vars["storeId"] = "#Trim(Attributes.store)#"> <cfinvoke webservice = "http://compassnetdev/Services/CustomerContractPartPrice.asmx?wsdl" method = "GetCustomerContractPrice" returnVariable = "price" argumentCollection = "#vars#"> </cfinvoke>
之前,我刚结束了contractId和部分传递中,和它的工作很大。没问题。但自从我在STOREID补充,它抛出此错误消息了:
Error Occurred While Processing Request Web service operation GetCustomerContractPrice with parameters {part={BV410070},storeId={001},contractId={21}} cannot be found. The error occurred in C:\inetpub\wwwroot\CustomTags\fn_get_price_2.cfm: line 58 56 : method = "GetCustomerContractPrice" 57 : returnVariable = "price" 58 : argumentCollection = "#vars#"> 59 : 60 :
正如你可以看到它变得我传递就好值。
我确信的:
我确信上面指出的Web服务地址是电流(意思是,我确信,这是包含我的新参数的最新版本)。
我手动转到Web服务,并显示wsdl(如预期)。
我可以通过转到Web服务URL来手动调用Web服务。我可以输入3个变量并单击Invoke,并返回正确的值。
这里是我的web服务代码:
public class CustomerContractPartPrice : System.Web.Services.WebService { [WebMethod] public decimal GetCustomerContractPrice(string part, string storeId, int contractId) { var context = new PricingBLL(); decimal price = context.GetCustomerContractPartPrice(contractId, part, storeId); return price; } }
这是写给业务对象和做的工作,并返回结果。最终我认为这是一个ColdFusion/.NET互操作性问题。思考?
太棒了,我认为这是我的问题的根源!感谢您的回应。当我发现答案时,请参阅上面的答案! – 2011-04-06 13:59:05