Starší komentáře ke článku: SOAP extenze pro WWW služby v ASP.NET

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Hou

Datum vložení: 3.2.2004 9:37:58

Tak sem si to cele vyzkousel. Bohuzel se mi tonepovedlo rozchodit. Vytvoril jsem si jednoduchou sluzbu, a aspx stranku, ktera volala sluzbu. Bez extenze to slape, pokud ale zaregistruji extenzi u sluzby

[Interval.Examples.SoapExtensions.SpyExtension("@c:\test.spy")]
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}

Tak to pri volani sluzby spadne na chybu:

Client found response content type of '', but expected 'text/xml'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Client found response content type of '', but expected 'text/xml'.

Source Error:


Line 35: [System.Web.Services.Protocols.SoapDocumentMethodAttribute("<a href='http://tempuri.org/HelloWorld"' target='_blank'>http://tempuri.org/HelloWorld"</a>, RequestNamespace="<a href='http://tempuri.org/"' target='_blank'>http://tempuri.org/"</a>, ResponseNamespace="<a href='http://tempuri.org/"' target='_blank'>http://tempuri.org/"</a>, Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
Line 36: public string HelloWorld() {
Line 37: object[] results = this.Invoke("HelloWorld", new object[0]);
Line 38: return ((string)(results[0]));
Line 39: }

Skusil jsem tedy zdrojovy kod, co je prilozen ke clanku. A tam to spadlo na tu samou chybu.
Vi nekdo kde je zakopanej pes?

P.S. Kdyz jsme u toho, da se nejak SOAP extension krokovat?

Avatar

Autor komentáře: Rene Stein

Datum vložení: 3.2.2004 12:09:40

Dobry den,
dle popisu problemu to vypada, ze na strane serveru dojde k vyjimce (proto nedostanete well formed odpoved text/xml]). Na 99% k vyjimce dojde, protoze ucet, pod kterym bezi ASP.NET, nema prava zapisovat do souboru c:\test.spy. Prislusna prava na FileSystem pridelte.
Tento kod je demonstracni, produkcni aplikace by nikdy nemela zapisovat na c:\

Ladeni SOAP extenzi je jednoduche - v VS.NET zareferencujte projekt se SOAp extenzi, umistete breakpointy, spustte WWW sluzbu tak, aby zobrazila http stranku a pote provedte SOAP volani sluzby ze sve aplikace.
Rene Stein

Avatar

Autor komentáře: janek

Datum vložení: 30.5.2005 18:42:38

mate niekto skusenosti so SOAP v PHP ? takmer cely den som na webe cital manualy, atd., ale nic konstruktivne sa mi nepodarilo najst, nehoworiac o potrebe WSDL suboru. Nemate niekto nejaky "rozumny" zdroj, z ktoreho by sa to dalo dobre pochopit ?!

Avatar

Autor komentáře: Otto Kovařík

Datum vložení: 31.7.2007 11:08:16

Nejsem si jist, jestli to sedí přímo sem, ale bližší téma jsem nenašel. Prosím o pomoc s mým problémem, hledal jsem snad už všude, ale bezvýsledně. mám tento zdrojový kód : $request = "<?xml version=\"1.0\" encoding=\"utf-8\"?> <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlnsoap=\"http://schemas.xmlsoap.org/soap/envelope/\"> <soap:Body> <GetCategories xmlns=\"http://tempuri.org/GetCategories\"> <HashCode>*********</HashCode> </GetCategories> </soap:Body> </soap:Envelope>"; $url = "http://www.logofun.cz/LogofunContentService/logofuncontentsvce.asmx?WSDL"; $action = "http://tempuri.org/GetCategories"; $version = SOAP_1_1; $client = new SoapClient("http://www.logofun.cz/LogofunContentService/logofuncontentsvce.asmx?WSDL", array('trace' => 1)); $result = $client->__doRequest($request,$url,$action,$version); echo "<br/>hlavicka : ".$client->__getLastResponseHeaders(); echo "<br/> obsah : ".$client->__getLastResponse(); hlavicka se mi vrati vporadku : HTTP/1.1 200 OK Date: Tue, 31 Jul 2007 08:19:04 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Length: 299 ale obsah je prazdny, nevite nekdo, kde mam chybu ??

Zpět na článek | Úvodní stránka Interval.cz