2016-03-23 18 views
-2

Ich habe dieses Problem mit SOAP, dass ich nicht zu lösen scheinen scheint. Egal, was ich versuche, dann habe ich diesen Fehler erhalte:Hält immer EOF erwarteten Fehler

500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

Wenn weiter unten in der Fehlercode graben mir gesagt gibt es ein EOF erwartet Fehler entdeckt?

Hoffnung, dass einige von euch vielleicht in der Lage sein, mir zu helfen

<% 
On Error Resume Next 
Dim objXMLHTTP : set objXMLHTTP = Server.CreateObject("Msxml2.XMLHTTP.3.0") 
Dim strFunction 
Dim strRequest 
Dim strResult 
Dim strName 
Dim strFirstName 
Dim strLastname 
Dim strAddress 
Dim strZipCode 
Dim strCity 
Dim strTelephone 
Dim strTelephone2 
Dim strTelephone3 
Dim strTelephone4 
Dim strEmail 
Dim strExtFields 
Dim strStdFields 
Dim CampaignID 
Dim Page 

Page = Request.Form("Page") 
CampaignID = Request.Form("CampaignID") 
StrName = Request.Form("Name") 
StrTelephone = Request.Form("Phone") 

strRequest = "" 
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/""> 
<Body> 
<InsertNewCustomer xmlns=""http://api.ivocall.dk/ivocallservice.asmx""> 
<Login>Loginname</Login> 
<Password>Password</Password> 
<ClientID>1323</ClientID> 
<IDPassword>ag4bghsitm8gatddbpt34qjndjrbsla</IDPassword> 
<CampaignID>"& campaignid &"</CampaignID> 
<Name>"& StrName &"</Name> 
<Firstname></Firstname> 
<Lastname></Lastname> 
<Address></Address> 
<City></City> 
<ZipCode></ZipCode> 
<Telephone>"& StrTelephone &"</Telephone> 
<Telephone2></Telephone2> 
<Telephone3></Telephone3> 
<Telephone4></Telephone4> 
<email></email> 
<ExtFields>landingpage="& page &"</ExtFields> 
<StdFields></StdFields> 
<UserName></UserName> 
</InsertNewCustomer> 
</Body> 
</Envelope>" 

objXMLHTTP.open "post", "" & "http://api.ivocall.dk/ivocallservice.asmx" & "", False 
objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=UTF-8" 
objXMLHTTP.setRequestHeader "Content-Length", Len(strRequest) 
objXMLHTTP.setRequestHeader "SOAPAction", "http://www.ivocall.dk/ivocallservice/InsertNewCustomer" 

'send the request and capture the result 
Call objXMLHTTP.send(strRequest) 
strResult = objXMLHTTP.responseText 

'display the XML 
response.write strResult 
response.write strRequest 

If Err.Number <> 0 Then 
     Response.Write (Err.Description) 
ELSE 
     Response.Write ("task done") 
     Response.End 
End If 
%> 

ich wirklich einige von Ihnen hoffen kann mir ihr helfen?

+0

Dies ist eine allgemeine Nachricht. Finde und zeige hier den genauen Fehler und wo das passiert. http://stackoverflow.com/questions/5385714/deploying-website-500-internal-server-error/5385884#5385884 – Aristos

+0

Der Fehler hat mit der XML-Zeichenfolge zu tun, wie Sie es hier haben ... – Aristos

+0

' "Ist das das Problem? – Shanid

Antwort

0

Sie verwenden Inline-Code-Tags.

<% 

Sie enthalten keine importierten Namespaces.

Außerdem scheinen Sie XML in strRequest kopieren zu wollen, aber Sie entziehen es nicht richtig, und VB.NET (was Sie verwenden, nicht C#) unterstützt keine mehrzeiligen Strings.

Und warum verwenden Sie

Server.CreateObject("Msxml2.XMLHTTP.3.0") 

Sie die normale WebRequest-Klasse verwenden kann, anstelle eines ActiveX-Objekt. Und wenn Sie es clientseitig machen wollen, müssen Sie JavaScript (AJAX) verwenden.
Wenn Sie eine domänenübergreifende Anfrage ausführen, müssen Sie CORs (und einen Browser, der CORs unterstützt) verwenden, oder Sie müssen einen Proxy schreiben, der die Anfrage für Sie erledigt.

Haben Sie außerdem versucht, eine Webreferenz zu Ihrem Projekt hinzuzufügen?
Visual Studio wird die WSDL automatisch herunterladen und die Wrapper-Klassen generieren. Warum willst du es mit der Hand machen? ...

Außerdem, wenn Sie Code wollen in der ASPX-Seite einbetten, tun Sie es in einem "Drehbuch" -tag runat="server" mit:

<%@ Register TagPrefix="RS" Namespace="Microsoft.ReportingServices.WebServer" Assembly="ReportingServicesWebServer" %> 
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Microsoft.ReportingServices.WebServer.ReportViewerPage" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 

<script type="text/C#" runat="server"> 


    protected void SetDocumentMode() 
    { 
     if(System.Web.HttpContext.Current == null || System.Web.HttpContext.Current.Request == null || System.Web.HttpContext.Current.Request.Browser == null || System.Web.HttpContext.Current.Request.Browser.Browser == null) 
      // return "<null>"; 
      return; 

     if (!StringComparer.OrdinalIgnoreCase.Equals(System.Web.HttpContext.Current.Request.HttpMethod, "GET")) 
      // return "<notget>"; 
      return; 

     // fu IE 11 
     if(System.Web.HttpContext.Current.Request.Browser.Browser == "IE" || System.Web.HttpContext.Current.Request.Browser.Browser == "InternetExplorer") 
     { 
      if(System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(System.Convert.ToString(System.Web.HttpContext.Current.Request.QueryString), "stylesheet", System.Globalization.CompareOptions.IgnoreCase) == -1) 
      { 
       System.Web.HttpContext.Current.Response.Write(@"<meta http-equiv='X-UA-Compatible' content='IE=5'> 
"); 
       //return "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=5\">"; // IE5-Quirks when no custom stylesheet (=not in iframe) 
      } 
      else 
       System.Web.HttpContext.Current.Response.Write("<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>"); 
       // return "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">"; // Switch to Standards mode when a custom stylesheet is set(=in iframe) 
     } 

     // return "<not ie: " + System.Web.HttpContext.Current.Request.Browser.Browser + ">"; 
     //return ""; 
    } 
</script> 

[...] 
<%SetDocumentMode(); %> 

Sind Sie mit ASP tatsächlich statt ASP.NET?