Wir haben eine ASP.NET-Website auf dem Server eines Clients installiert. Diese Website verfügt über einen Webservice mit einigen Webmethoden, die von einem Flash-Objekt aufgerufen werden, um einen Newsfeed anzuzeigen. Wenn Sie zu ihrer Website (z. B. www.domain.com) navigieren, funktioniert alles außer dem Flash.Problem mit falschen URLs in der WSDL eines .NET-Webdiensts
Das Problem ist, dass, wenn wir zum .asmx durchsuchen, der Header zeigt, dass der Host eine Sub-Domain intern zu ihrem Netzwerk (internal.domain.com). Offensichtlich löst dies keine öffentliche IP-Adresse, wenn von außerhalb ihres Netzwerks zugegriffen wird. Dies führt dazu, dass der Flash fehlschlägt, da das Flash-Objekt auf einer Seite eingebettet ist und daher auf der Client-Seite läuft.
Ich habe die Computernamen auf dem Server in Frage, und es auch dann nicht überein „internal.domain.com“ - es ist etwas ganz anderes. Woher kommt diese Information? Es stammt nicht von IIS, da wir keine Host-Header eingerichtet haben und die IP für die Site auf (alle nicht zugewiesen) festgelegt ist.
Wir müssen entweder den Web-Service zwingen, gegen einen bestimmten Host ausgeführt werden, oder wir brauchen, um etwas auf dem Server zu ändern, so dass es zu einem gültigen öffentlich zugänglichen löst Hostnamen ein. Jede und alle Hilfe wird sehr geschätzt !!!!
Ist das eine WCF svc-Datei oder ein einfacher asmx Dienst hinzufügen? –
Ich bin mir eigentlich nicht ganz sicher, da ich nicht die Person bin, die den Web-Service ursprünglich in das Projekt aufgenommen hat. Was wäre der Unterschied? Alles, was ich weiß, ist, dass sich eine .asmx-Datei in einem WebServices-Ordner im Stammverzeichnis der Site befindet und die Codebehind-Datei (.cs) sich im App_Code-Verzeichnis befindet. Das ist so ziemlich alles. – Keith
Wir haben herausgefunden, dass unser Client einen Reverse-Proxy für seinen Web-/Netzwerkverkehr verwendet, so dass der Host-Header, der durchkam, nicht mit der tatsächlichen URL/Hostname übereinstimmte. Sie waren nicht in der Lage, den Fehler zu beheben. Daher mussten wir den Teil des Flashs entfernen, der den Web-Service anrief. – Keith