Laden...

problem mit webservice

Erstellt von johnnybravo vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.167 Views
J
johnnybravo Themenstarter:in
7 Beiträge seit 2006
vor 18 Jahren
problem mit webservice

hi leute,
ich habe folgendes problem:

ich habe drei kleine webservices geschrieben (A, B und C). dabei benutzt webservice A die beiden services B und C. wenn ich B und C separat starte, funktioniert alles tadellos. sie erfüllen ihre aufgabe.

wenn ich aber den webservice A starte, funktioniert plötzlich nichts mehr. wenn ich über den test-server, den visual studio automatisch selbst startet, über die website die einzige webmethode ansteuere, die er hat, dann kriege ich folgende fehlermeldung:

System.Net.WebException: The request was aborted: The connection was closed unexpectedly.
   at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Xml.XmlUtf8RawTextWriter.FlushBuffer()
   at System.Xml.XmlUtf8RawTextWriter.Flush()
   at System.Xml.XmlWellFormedWriter.Flush()
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at NcbiGenomeFetcher.NcbiGenomeFetcher.FetchGenome(String refseqID)
   at NcbiRelativeFinder.FindClosestRelative(String refseqID)

ich habe den fehler bereits eingekreist. er passiert wenn im code von webservice A die webmethode von webservice B aufgerufen wird. also wenn der webservice das erste mal auf einen anderen webservice zugreift.

woran könnte es liegen? bitte helft mir 😁

edit: PS: webservice A ist der "NcbiRelativeFinder" und webservice B der "NcbiGenomeFetcher"! man sieht es im stack trace auch, dass A beim aufruf einer webmethode von B einen fehler auslöst.

N
61 Beiträge seit 2005
vor 18 Jahren

Laut Fehlermeldung wurde die connection vorzeitig geschlossen.
Kann es sein, dass in Service A irgendwo ein Fehler stattfindet den du abfängst, er darauf die connection killt und er dadurch keinen zugriff mehr hat?.

Kannste mal den Codeschnippsel aus Service A schicken? Ich denke, dass hilft uns weiter.

J
johnnybravo Themenstarter:in
7 Beiträge seit 2006
vor 18 Jahren

Service A:

 [WebMethod]
    public string FindClosestRelative (string refseqID) {
		NcbiGenomeFetcher.NcbiGenomeFetcher fetcher = new NcbiGenomeFetcher.NcbiGenomeFetcher();
		string genome = fetcher.FetchGenome(refseqID);
		NcbiBlaster.NcbiBlaster blaster = new NcbiBlaster.NcbiBlaster();
		string blastResult = blaster.Blast(genome);
		return ParseClosestRelative(refseqID, blastResult);
    }

Dabei wird in der zweiten Zeile folgende Methode von Service B aufgerufen:

 [WebMethod]
    public string FetchGenome (string refseqID) {
		string genome = null;
		try
		{
			string page = DownloadPage(url + refseqID);
			genome = ExtractGenome(page).Replace("\n", "");
		}
		catch (Exception ex)
		{
			genome = "<ERROR> : " + ex.Message;
		}

		return genome;
    }

Service B und C befinden sich in einer Solution mit Service A und wurden über "Add Web Reference->Webservice in this solution" hinzugefügt.