2014-12-11 3 views
1

Classic ASP로는 지금까지 한번도 노출 된 적이 없다고 말하여 시작하겠습니다. UserName 인증을 사용하여 basicHttpBinding을 사용하여 WCF 서비스를 만들었습니다. 클라이언트는 NeoLoad에서 테스트 할 때 아래 코드가 작동한다고했지만 IIS 서버에 넣을 때 400 번의 잘못된 요청 오류가 발생하기 시작했습니다. 나는 주위를 둘러 보았고 지금 이틀 동안이 싸움을 해왔고 나는이 문제에 대한 답을 찾을 수 없다. 어떤 도움이라도 대단히 감사 드리며 사전에 감사드립니다.Classic ASP가 UserName 인증을 사용하는 SSL을 통해 WCF 서비스 사용

<% 
    Dim SOAPResponse, SOAPRequest, serviceUrl, strResult 

serviceUrl = "" 
Response.Write "Creating XML Object<br>" & vbCrLf 
Dim oXmlHTTP : Set oXmlHTTP = CreateObject("MSXML2.ServerXMLHTTP") 

    SOAPRequest = "<?xml version=""1.0"" encoding=""UTF-8""?>" 
    SOAPRequest = SOAPRequest & "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:u=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"">" 
    SOAPRequest = SOAPRequest & "<s:Header>" 
     SOAPRequest = SOAPRequest & "<o:Security s:mustUnderstand=""1"" xmlns:o=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"">" 
      SOAPRequest = SOAPRequest & "<u:Timestamp u:Id=""_0"">" 
       SOAPRequest = SOAPRequest & "<u:Created>2014-12-04T20:13:37.744Z</u:Created>" 
       SOAPRequest = SOAPRequest & "<u:Expires>2014-12-04T20:18:37.744Z</u:Expires>" 
      SOAPRequest = SOAPRequest & "</u:Timestamp>" 
      SOAPRequest = SOAPRequest & "<o:UsernameToken u:Id=""UsernameToken-5"">" 
       SOAPRequest = SOAPRequest & "<o:Username>" 
        SOAPRequest = SOAPRequest & "" 
       SOAPRequest = SOAPRequest & "</o:Username>" 
       SOAPRequest = SOAPRequest & "<o:Password>" 
        SOAPRequest = SOAPRequest & "" 
       SOAPRequest = SOAPRequest & "</o:Password>" 
      SOAPRequest = SOAPRequest & "</o:UsernameToken>" 
     SOAPRequest = SOAPRequest & "</o:Security>" 
     SOAPRequest = SOAPRequest & "<To s:mustUnderstand=""1"" xmlns=""http://schemas.microsoft.com/ws/2005/05/addressing/none"">""""</To>" 
     SOAPRequest = SOAPRequest & "<Action s:mustUnderstand=""1"" xmlns=""http://schemas.microsoft.com/ws/2005/05/addressing/none"">""http://tempuri.org/ISLAServiceSandbox/SaveEntry""</Action>" 
    SOAPRequest = SOAPRequest & "</s:Header>" 
    SOAPRequest = SOAPRequest & "<s:Body>" 
     SOAPRequest = SOAPRequest & "<SaveEntry xmlns=""http://tempuri.org/"">" 
      SOAPRequest = SOAPRequest & "<request xmlns:a=""http://schemas.datacontract.org/2004/07/IDOI.Ams.Taxes.Web.Domain"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"">" 

      SOAPRequest = SOAPRequest & "</request>" 
     SOAPRequest = SOAPRequest & "</SaveEntry>" 
     SOAPRequest = SOAPRequest & "</s:Body>" 
    SOAPRequest = SOAPRequest & "/s:Envelope>" 

oXmlHTTP.Open "POST", serviceUrl, False 

oXmlHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
oXmlHTTP.setRequestHeader "Content-Length", Len(SOAPRequest) 
oXmlHTTP.setRequestHeader "SOAPAction", "http://tempuri.org//SaveEntry" 

'send the request and capture the result 
Call oXmlHTTP.send(SOAPRequest) 
Response.Write "Status: " & oXmlHTTP.Status & " - " & oXmlHTTP.statusText & "<br>" & vbCrLf 
Response.Write strResult 
%> 

<%= strResult %> 

답변

1

오케이 그럼이 코드를 작성한 컨설턴트가 알아 냈습니다. 그것이 잘못 배치 된 코드 일뿐입니다. 대신

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" 

의 그것은이보고있는 시간을 보낸 사람에

<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/" 

감사하고 있어야합니다.

관련 문제