2016-03-23 2 views
-2

У меня есть эта проблема с SOAP, которую я не могу решить. Независимо от того, что я стараюсь, я получаю эту ошибку:Сохраняет ожидаемую ошибку EOF

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

При рытье дальше код ошибки я сказал есть ожидается ошибка EOF?

Надеется, что некоторые из вас могли бы быть в состоянии помочь мне

<% 
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 
%> 

Я действительно надеюсь, что некоторые из вас могут помочь мне ее?

+0

Это общее сообщение. Найдите и покажите здесь точную ошибку и где это происходит. http://stackoverflow.com/questions/5385714/deploying-website-500-internal-server-error/5385884#5385884 – Aristos

+0

Ошибка связана с XML-строкой, поскольку вы ее разместили здесь ... – Aristos

+0

' 'Это проблема? – Shanid

ответ

0

Вы используете встроенные кодовые тэги.

<% 

Они не содержат импортированных пространств имен.

Кроме того, вам кажется, что вы хотите скопировать XML в strRequest, но вы его не экранируете, а VB.NET (это то, что вы используете, а не C#) не поддерживает многострочные строки.

А почему вы используете

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

Вы можете использовать обычный класс WebRequest, вместо ActiveX-объекта. И если вы хотите сделать это на стороне клиента, вам нужно использовать JavaScript (AJAX).
Если вы выполняете кросс-доменный запрос, вам нужно использовать COR (и браузер, поддерживающий COR), или вам нужно написать прокси-сервер, который выполняет ваш запрос.

Кроме того, вы пытались добавить ссылку на свой проект?
Visual Studio автоматически загрузит WSDL и сгенерирует классы-оболочки. Почему вы хотите сделать это вручную? ...

Кроме того, если вы хотите вставлять код на странице ASPX, сделайте это в «сценарий» -tag использованием runat="server":

<%@ 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(); %> 

ли вы на самом деле с помощью ASP вместо ASP.NET?

Смежные вопросы