2015-11-16 57 views
0

我嘗試使用SOAP UI訪問我的webmethods,但它僅適用於第一個,我不明白爲什麼。如何使用SOAPUI訪問webservice的differents方法

我的Web服務方法:

[SoapHeader ("AuthenticationInfo", Required=true)] 
    [WebMethod(EnableSession = true)] 
    public string HelloWorld() 
    { 

     if (!(AuthenticationInfo.Username == "test" && AuthenticationInfo.Password == "test")) 
     {    
      throw new Exception(); 
      // I put that in the aim to get an error, I'll modify this later 
     } 

     return "OK"; 

    } 

    [SoapHeader("AuthenticationInfo", Required = true)] 
    [WebMethod] 
    public string Authenticate(string MethodName) 
    { 
     if (!(AuthenticationInfo.Username == "test" && AuthenticationInfo.Password == "test") 
     { 
      throw new Exception(); 
     } 
     else 
     { 
      HelloWorld(); 
     } 
     return "aaaa"; 
    } 

    [WebMethod] 
    public int Calcul(int a, int b) 
    {   
     return a+b ; 
    } 

當我把這個XML在SOAP UI:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
    <AuthHeader xmlns="http://tempuri.org/"> 
     <Username>test</Username> 
     <Password>test</Password> 
     <key>string</key> 
    </AuthHeader> 
    </soap:Header> 
    <soap:Body> 
    <HelloWorld xmlns="http://tempuri.org/" /> 
    </soap:Body> 
</soap:Envelope 

它完美,我得到的HELLOWORD()方法返回。 但如果我把:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <Calcul xmlns="http://tempuri.org/"> 
     <a>1</a> 
     <b>1</b> 
    </Calcul> 
    </soap:Body> 
</soap:Envelope> 

它再次調用的HelloWorld()方法。我在SOAP UI中使用的URL是:「http://localhost:62353/MyWebService.asmx」,所以我嘗試使用URL「http://localhost:62353/MyWebService.asmx/Calcul」上的最後一個XML嘗試一個新請求,並且出現錯誤。

你是我的想法嗎?我可能會錯誤地使用SOAP UI嗎?

要回復Kosala W: 我得到一個類似於我可以點擊方法的UI。 calcul方法只適用於這裏,因爲這種方法不需要SoapHeader。

enter image description here

+0

當您在瀏覽器中運行您的Web服務項目時,您可以看到哪些方法?你可以點擊它們並查看模式? –

+0

@KosalaW我運行Web服務項目時放置了一個屏幕圖像 – Julien698

回答

0

這裏是迴應:

當您指定的SOAP UI,你需要在這樣的末尾添加WSDL的URL:http://localhost:62353/MyWebService.asmx?wsdl然後我刷新項目在SOAP UI和所有的方法出現