HI,重新創建Web服務
我的工作是創造出充當另一個web服務,我們有一個Web服務,所以客戶端不會注意到其中的差別。我創建了我的整個web服務,並且在我使用它時輸出都是相同的。關鍵是,我創建了一個clientapplication,我用舊的web服務,如果我改變Web引用的URL到新的服務,然後重試我得到一個錯誤:
System.Web.Services.Protocols.SoapException: The server did not recognize the HTTP-header SOAPAction
如果我期待在參考的差異在我的兩個Web服務中.cs我注意到有一個屬性的小差異,這是我認爲的問題。
新服務:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.3053")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="SprWebServiceSoap", Namespace="http://ws.hl7.trispark.com/")]
public partial class SprWebService : System.Web.Services.Protocols.SoapHttpClientProtocol {
老服務:這是用來
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.3053")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="SprWebServiceRemoteBinding", Namespace="http://ws.hl7.trispark.com/")]
public partial class SprWebService : System.Web.Services.Protocols.SoapHttpClientProtocol {
同時,也是方法而不同:
新:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.hl7.trispark.com/invoke", RequestNamespace="http://ws.hl7.trispark.com/", ResponseNamespace="http://ws.hl7.trispark.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public invokeResponse invoke(invoke inv) {
老:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("invokeResponse", Namespace="http://ws.hl7.trispark.com/types")]
public invokeResponse invoke([System.Xml.Serialization.XmlElementAttribute("invoke", Namespace="http://ws.hl7.trispark.com/types")] invoke invoke1) {
首先,我想這個問題可能是我的版本是在VS2008中創建和舊的在VS2005,所以我重新在2005年,但這並沒有改變任何東西。
事情是我沒有舊的代碼,所以我不能看到使用什麼特定的屬性。
有沒有人有任何想法,我必須設置爲獲得相同的東西?
非常感謝!
其他Web服務是在java中創建的,所以這是一個沒有去:( – WtFudgE 2010-01-05 12:30:24
你有沒有看任何的Java反編譯器這可能是唯一的事情,如果你想要的嗎? 100%肯定只有另外一種方式是將xsd/wsdl的內容與實際內容進行比較,以便讓它們匹配。另外一件你可能會嘗試的產品就是像SOAPScope這樣的產品,它可以讓你真正看到完整的SOAP數據包通過網絡傳輸,然後您可以從SOAP角度推斷出您需要的任何更改。 – 2010-01-05 15:14:32