不知道你是否可以帮助一个可怜的迷茫c#程序员,但是这里有。我有一个客户端有一个遗留Java Soap应用程序,我们需要接受来自的传入Soap请求。我已经构建了一个解决方案并进行了测试,一切都很好。
当我让Java应用程序在ASMX文件上松动时,它失败了,因为我不能在我的生活中得到我的代码来接受我需要理解的肥皂动作。
Java发送的soap动作是:
瓮:mycode的UK:GI:DIS:supplierenmanager:V02:SupplierManager:AppointManager
虽然我对添加新Web服务时创建的类使用了以下内容:
<WebService(Namespace:="urn:mycode:uk:gy:dis:suppliermanager:v02:SupplierManager:")>
然后在方法上,我添加了:
<WebMethod(MessageName:="AppointSupplier")>
这除了一个小问题之外还有效。上述组合提供了以下肥皂作用:
瓮:mycode的UK:GI:DIS:supplierenmanager:V02:SupplierManager:/ AppointManager
正如你所看到的,我正在获得额外的正斜杠,因此肥皂行动被拒绝了。
有没有人知道一项工作,或者我现在最好使用WCF?
如果答案是使用WCF DUMMY,那很好,并愿意接受这个作为答案,但如果是这种情况,请有人请指点我将解释如何处理SOAP标题的一些示例和可怕的SOAPAction。
谢谢
答案 0 :(得分:1)
无法看到解决方案,但现在正在考虑将代码从ASMX Web服务转换为消耗肥皂的WCF服务。
这是因为如果我创建一个空的asp.net站点并添加一个wcf服务,我可以将以下代码添加到接口代码中的函数声明中:
<OperationContract
(Action:="urn:mycode:uk:gi:dis:supplierenmanager:v02:SupplierManager:AppointManager")> _
这会创建正确的SOAPAction。