Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Добрый день.

Понятия не имею можно ли это как то настроить, попробую описать суть... Есть API стороннего сервиса, данное API организовано таким образом, что часть запросов вызывается на нашей стороне, а другая часть API отправка запросов на наш адрес.

Отправить запрос на сторонний ресурс можно через бизнес логику mssql, вызвать в хранимой процедуре библиотеку clr... тут и вовсе не нужен iis... Но, т.к. нужно и получать запросы из вне, то я полагаю библиотеки clr будет мало...

Не хочется "плодить" технологии сторонних производителей, идеально "связать" бы mssql с iis без всяких лишних прослоек, таких как php модули и прочее... внешний запрос попадая на iis отправляется в БД mssql вызывая "зарегистрированную" хранимую процедуру. А полученный запрос в формате json "распакуем" уже средствами mssql т.к используем mssql2016

Такое возможно?
30 окт 18, 14:59    [21719050]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Игорь_UUS,

а IIS это волшебный теннисист или футболист?

веб сервисы
30 окт 18, 15:01    [21719053]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
TaPaK,

Дело не в волшебстве, а какие у майкрасофт-технологии есть на этот счёт. Отсутствуют познаний в этих моментах(( нужен совет как лучше организовать и не уходить далеко от того с чем придётся работать. Я считаю если mssql и всё это крутиться на win платформе, то и использовать тогда iis, если iis, то встаёт вопрос как проще всего взаимодействовать с mssql. При этом через mssql нужно отправлять запросы (как вариант clr), но их ещё нужно получать из вне, наверное через iis
30 окт 18, 15:09    [21719081]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
court
Member

Откуда:
Сообщений: 2018
Игорь_UUS
а какие у майкрасофт-технологии есть на этот счёт

CREATE ENDPOINT
30 окт 18, 15:11    [21719087]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
court
Игорь_UUS
а какие у майкрасофт-технологии есть на этот счёт

CREATE ENDPOINT


Спасибо, попробую детально познакомиться... на первый взгляд ничего не понятно)) т.е. используя конечные точки можно открыть порт и получать запросы в виде того-же json? и я так понял тут не используется iis?
30 окт 18, 15:22    [21719106]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
court
Member

Откуда:
Сообщений: 2018
Игорь_UUS
court
пропущено...

CREATE ENDPOINT


Спасибо, попробую детально познакомиться... на первый взгляд ничего не понятно)) т.е. используя конечные точки можно открыть порт и получать запросы в виде того-же json? и я так понял тут не используется iis?

это всё было можно до 2012 сервера
Убрали, оказывается, эту "тему", - FOR SOAP ... ((

Native XML Web Services (SOAP/HTTP endpoints) is deprecated. For more information, see Native XML Web Services: Deprecated in SQL Server 2008.
30 окт 18, 15:32    [21719120]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7768
Игорь_UUS,

такую архитектуру прикольно сделать на коленке с минимальными затратами времени, но после этого бегите быстро и далеко, особенно если система 24/7. Потому что сопровождать ее будет попаболь.

Если у вас пара -тройка сервисов, и требования очень редко меняются, можно написать CRL функции для работы в веб-сервисами. Это работает хорошо до тех пор, пока не потребуется проводить интеграционное тестирование на выделенном стенде. Если для ларька "союзпечать" пишете, то пойдёт.
30 окт 18, 18:39    [21719419]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Владислав Колосов
Игорь_UUS,
Если у вас пара -тройка сервисов, и требования очень редко меняются, можно написать CRL функции для работы в веб-сервисами. Это работает хорошо до тех пор, пока не потребуется проводить интеграционное тестирование на выделенном стенде. Если для ларька "союзпечать" пишете, то пойдёт.



Интеграционное тестирование в данном случае очень маловероятно потребуется... посоветуйте... отправку запросов на сторонний ресурс можно действительно написать через clr, но в правилах работы с сторонним сервисом есть пару методов, когда сторонний сервис периодически должен отправлять пакет данных (http запрос в формате json) на нашу сторону... я так понимаю через clr уже не получиться?

Может посмотреть например в сторону iis+isapi? Тут мы можем обрабатывать входящие запросы как нам надо, но тогда как нам их отправлять на сторонний сервис средствами mssql т.к. вся бизнес логика на стороне бд mssql...

Получается при входящем запросе между базой и iis нужна "прослойка", например как isapi, а для отправки на сторонний сервис использовать clr? Или лучше использовать более правильный "некий" способ?:
- "http запрос стороннего ресурса-->iis-->прослойка-->бд"
и
- "бд и создание запроса в формате json-->прослойка-->iis-->сторонний ресурс"
31 окт 18, 07:40    [21719761]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
aleks222
Member

Откуда:
Сообщений: 985
Игорь_UUS
Может посмотреть например в сторону iis+isapi? Тут мы можем обрабатывать входящие запросы как нам надо, но тогда как нам их отправлять на сторонний сервис средствами mssql т.к. вся бизнес логика на стороне бд mssql...


Все от сорта запросов зависит.
А так-то ничего не мешает iis переправить запрос К НЕМУ на ЛЮБОЙ ДРУГОЙ СЕРВЕР.
31 окт 18, 09:16    [21719828]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
aleks222
Игорь_UUS
Может посмотреть например в сторону iis+isapi? Тут мы можем обрабатывать входящие запросы как нам надо, но тогда как нам их отправлять на сторонний сервис средствами mssql т.к. вся бизнес логика на стороне бд mssql...


Все от сорта запросов зависит.
А так-то ничего не мешает iis переправить запрос К НЕМУ на ЛЮБОЙ ДРУГОЙ СЕРВЕР.


Все запросы http, тело запроса в формате json (всё стандартно)

по поводу: "ничего не мешает iis переправить запрос К НЕМУ на ЛЮБОЙ ДРУГОЙ СЕРВЕР" ... бррр ничего не понял, можете чуть-чуть конкретизировать... заранее благодарен!
31 окт 18, 09:21    [21719832]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
court
Member

Откуда:
Сообщений: 2018
Игорь_UUS
по поводу: "ничего не мешает iis переправить запрос К НЕМУ на ЛЮБОЙ ДРУГОЙ СЕРВЕР"
вот пример простейшей asp-странички, которая принимает http-запрос, и POST-data запроса, передаёт SQL серверу
+
<%
On Error Resume Next

Dim tot_bytes, postData
Dim objConn

tot_bytes = Request.TotalBytes

If tot_bytes > 0 Then
    
    With Server.CreateObject("Adodb.Stream")
        .Charset = "utf-8" 'specify the request encoding
        .Type = 1 'adTypeBinary, a binary stream
        .Open
        .Write Request.BinaryRead(tot_bytes) 'Write bytes
        .Position = 0 ' set position to the start
        .Type = 2 ' adTypeText, stream type is text now
        postData = .ReadText 'read all text
        .Close
    End With
    
    Set objConn = Server.CreateObject("Adodb.Connection")
    objConn.Open "Provider=SQLNCLI11;Server=MyServ;Database=MyDB;Uid=sa;Pwd=MyPass;"
    
    If Err > 0 Then
        Response.Write Err.Description
    Else
        With Server.CreateObject("Adodb.Recordset")
            .Open "select * from DataFromWS where 1=0", objConn, 3, 3
            If Err > 0 Then
                Response.Write Err.Description
            End If
            .AddNew
            .Fields("data").Value = postData
            .Update
            .Close
        End With
    End If
    objConn.Close: Set objConn = Nothing
    '
    If Err > 0 Then
        Response.Write Err.Description
    Else
        Response.Write postData '"data stored successfully"
    End If
Else
    Response.Write "no post data"
End If

%>

Точно так же, как здесь сделано сохранение POST-data в таб. на сервере,
можно сделать вызов ХП с параметром = POST-data

... и, если это конечно нужно, получить от ХП какой-то результат, и вернуть, через Response.Write, стороне отправившей http-запрос
31 окт 18, 10:38    [21719937]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
court
Игорь_UUS
по поводу: "ничего не мешает iis переправить запрос К НЕМУ на ЛЮБОЙ ДРУГОЙ СЕРВЕР"
вот пример простейшей asp-странички, которая принимает http-запрос, и POST-data запроса, передаёт SQL серверу
+
<%
On Error Resume Next

Dim tot_bytes, postData
Dim objConn

tot_bytes = Request.TotalBytes

If tot_bytes > 0 Then
    
    With Server.CreateObject("Adodb.Stream")
        .Charset = "utf-8" 'specify the request encoding
        .Type = 1 'adTypeBinary, a binary stream
        .Open
        .Write Request.BinaryRead(tot_bytes) 'Write bytes
        .Position = 0 ' set position to the start
        .Type = 2 ' adTypeText, stream type is text now
        postData = .ReadText 'read all text
        .Close
    End With
    
    Set objConn = Server.CreateObject("Adodb.Connection")
    objConn.Open "Provider=SQLNCLI11;Server=MyServ;Database=MyDB;Uid=sa;Pwd=MyPass;"
    
    If Err > 0 Then
        Response.Write Err.Description
    Else
        With Server.CreateObject("Adodb.Recordset")
            .Open "select * from DataFromWS where 1=0", objConn, 3, 3
            If Err > 0 Then
                Response.Write Err.Description
            End If
            .AddNew
            .Fields("data").Value = postData
            .Update
            .Close
        End With
    End If
    objConn.Close: Set objConn = Nothing
    '
    If Err > 0 Then
        Response.Write Err.Description
    Else
        Response.Write postData '"data stored successfully"
    End If
Else
    Response.Write "no post data"
End If

%>

Точно так же, как здесь сделано сохранение POST-data в таб. на сервере,
можно сделать вызов ХП с параметром = POST-data

... и, если это конечно нужно, получить от ХП какой-то результат, и вернуть, через Response.Write, стороне отправившей http-запрос


точно так же можно сделать и через написанную библиотеку isapi... будет то же самое...
у меня больше вопрос как организовать работу: "бд и создание запроса в формате json-->прослойка-->iis-->сторонний ресурс"?
или без особых вариантов тут, и сделать всё через clr?
31 окт 18, 11:02    [21719971]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли скриптами MSSQL взаимодействовать с iis?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7768
Игорь_UUS,

если что-то идет и в вашу сторону, то публикуйте веб-приложение на вашем IIS, поднимайте веб-сервисы. Сервисы будут вызывать заданные процедуры на сиквеле. Т.е. со стороны SQL выполняете CLR функции, которые работают с внешними веб-сервисами, а у себя создаёте свои сервисы, которые выполняют процедуры. CLR можно завернуть в SQL процедуры, дабы вести журналирование запросов.
Не забудьте определить уровни доступа веб-сервисов, dbo не давайте.
31 окт 18, 11:04    [21719973]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить