2015-04-16 3 views
0

В SQL Server я вызываю веб-службу, но не вижу на скрипалле. Как я могу отслеживать запросы с сервера sql на скрипаче?Запросы веб-сервисов SQL Server на Fiddler

PS: Я попробовал setProxy, но ничего не изменилось.

Это мой код:

--DROP PROCEDURE [dbo].[WS_IsEInvoiceUser] 
CREATE PROCEDURE [dbo].[WS_IsEInvoiceUser] 
    @vkn varchar(20), 
    @username VARCHAR(50)='FreseniusMedikal', 
    @password VARCHAR(50)='xxxx', 
    @ResponseText as Varchar(8000) OUTPUT 
AS 
BEGIN 
    SET NOCOUNT ON; 

    DECLARE @Request INT 
    Declare @Body as varchar(8000) = '<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"> 
     <s:Header> 
      <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
       <o:UsernameToken> 
        <o:Username>'[email protected]+'</o:Username> 
        <o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">'[email protected]+'</o:Password> 
       </o:UsernameToken> 
      </o:Security> 
     </s:Header> 
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
      <IsEInvoiceUser xmlns="http://tempuri.org/"> 
       <vknTckn>'[email protected]+'</vknTckn> 
       <alias/> 
      </IsEInvoiceUser> 
     </s:Body> 
    </s:Envelope>' 
    EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @Request OUT; 
    EXEC sp_OAMethod @Request, 'setProxy', NULL, '2', 'http://127.0.0.1:8888' 
    EXEC sp_OAMethod @Request, 'open', NULL, 'post','https://efatura.uyumsoft.com.tr/Services/Integration', 'false' 
    EXEC sp_OAMethod @Request, 'setRequestHeader', null, 'SOAPAction', 'http://tempuri.org/IIntegration/IsEInvoiceUser' 
    EXEC sp_OAMethod @Request, 'setRequestHeader', null, 'Content-Type', 'text/xml; charset=utf-8' 
    EXEC sp_OAMethod @Request, 'send', null, @body 

    EXEC sp_OAMethod @Request, 'responseText', @ResponseText OUTPUT 
    SELECT CHARINDEX('true', SUBSTRING(@ResponseText, CHARINDEX('IsSucceded="true" Value="', @ResponseText)+LEN('IsSucceded="true" Value="'), 5)) 


    Exec sp_OADestroy @Request 
END 
+0

Fiddler работает в рамках текущего сеанса входа в систему, но SQL Server работает как служба в другом сеансе. Существуют способы запуска Fiddler как системы (потребуется одно и то же, чтобы перехватывать запросы из IIS). – Richard

ответ

0

Во-первых, вы определенно должны вызвать setProxy или иначе ваш ServerXMLHTTPRequest не будет направлять трафик через Скрипач, так что вы находитесь на правильном пути там. Сказав это, я не уверен, что ваши параметры правильно, в this example они должны быть:

EXEC sp_OAMethod @Request, 'setProxy', '2', 'http://127.0.0.1:8888', '' 

... который совпадает с declaration on MSDN.

Чтобы запрос HTTPS был успешным, вам необходимо убедиться, что корневой сертификат Fiddler доверен доверенному корневому хранилищу MACHINE. В Fiddler выберите «Инструменты»> «Параметры Fiddler»> «HTTPS» и нажмите «Экспорт корневого сертификата на рабочий стол». Затем запустите MMC.exe и добавьте snapin «Certificates». Выберите «Учетная запись компьютера». Перетащите файл FiddlerRoot.cer с рабочего стола в папку «Доверенные корневые центры сертификации» в консоли mmc и примите приглашения.

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