Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
problem mit webservice
johnnybravo
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

problem mit webservice

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
johnnybravo
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers