Некоторая часть, если мои хранимые процедуры SQL Server не выполняются после добавления ssl, это происходит до - PullRequest
0 голосов
/ 15 марта 2019

Я создаю коммерческий портал в ASP.NET MVC и SQL Server в качестве бэкэнда. Сам сайт динамически весь контент, включая главное меню, генерируется во время выполнения. После завершения работы я поднял ее (у них было 2 сервера: 1 для внешнего интерфейса и 2 для SQL Server), и он работал нормально.

Проблема началась, когда они добавили сертификат SSL, заявив, что это должно повысить скорость, но некоторые части моих процедур (например, циклы, таблицы, содержащие огромные данные) не возвращают никакого результата, вместо этого он возвращает NULL.

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

DECLARE @UDO_DEFAULT_VENDORLOCATION NVARCHAR(150) = 
        (SELECT TOP 1 TAB1.vendorcode + N'|' + CAST(othervendorlocation AS VARCHAR(30)) + N'|' + '-D' + N'|' + TAB2.locationX + N'|' + TAB2.locationY + N'|' + TAB2.areacode + N'|' + TAB3.name + N'|' + TAB3.pincode + N'|' + TAB3.countrycode + N'|' + TAB3.countryname + N'|' + TAB3.statecode + N'|' + TAB3.statename + N'|' 
         FROM ec_company TAB1
         INNER JOIN ec_vendors_locations TAB2 ON TAB1.othervendorlocation = TAB2.vendorlocationcode 
                                              AND TAB1.vendorcode = TAB2.vendorcode 
         INNER JOIN udv_lang_area TAB3 ON TAB3.areacode = TAB2.areacode 
                                       AND TAB3.lancode = @UDO_PARAM_LANGUAGE )

Я использую |, чтобы разделить содержимое позже. Этот запрос будет нормально выполняться при удалении ssl.

Я даже создал домен без ssl и вызвал его из этого домена, и он работал нормально. Эта часть никогда не будет работать с ssl. Остальная часть процедуры работает отлично. Некоторые другие процедуры также имеют эту проблему.

Понятия не имею, чем вызвана эта проблема? Они используют серверы Amazon. Кто-то знает, почему это происходит ?? !!

Это как-то связано с моим web.config? Есть соединение и процедура запущена, за исключением некоторых разделов, которые меня смущают! Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 15 марта 2019

Это предложение по устранению неполадок, а не ответ, но оно не читается в комментарии.

Я думаю, что Jeroen находится на правильном пути, возможно, контекст безопасности меняется, когда вы его запускаетена сервере с SSL, возможно, потому что параметр отличается, или возможно, с включенным SSL, используется другой метод аутентификации.Самый простой способ узнать, используется ли другой контекст безопасности, - встроить CURRENT_USER () в конкретный запрос, в котором возникли проблемы.Не делайте этого в SSMS, делайте это в запросе, поэтому приведенный выше код становится

(ПРИМЕЧАНИЕ. Возможно, вам придется увеличить размер @UDO_DEFAULT_VENDORLOCATION для хранения дополнительных символов!)

DECLARE @UDO_DEFAULT_VENDORLOCATION NVARCHAR(150) = 
     (SELECT TOP 1 TAB1.vendorcode + N'|' 
       + CAST(othervendorlocation AS VARCHAR(30)) + N'|' + '-D' + N'|' 
       + TAB2.locationX + N'|' + TAB2.locationY + N'|' + TAB2.areacode + N'|' 
       + TAB3.name + N'|' + TAB3.pincode + N'|' + TAB3.countrycode + N'|' 
       + TAB3.countryname + N'|' + TAB3.statecode + N'|' + TAB3.statename + N'|' 
       + N'#' + CURRENT_USER() --ADD this line!
   FROM ec_company TAB1
         INNER JOIN ec_vendors_locations TAB2 
           ON TAB1.othervendorlocation = TAB2.vendorlocationcode 
                  AND TAB1.vendorcode = TAB2.vendorcode 
         INNER JOIN udv_lang_area TAB3 ON TAB3.areacode = TAB2.areacode 
                  AND TAB3.lancode = @UDO_PARAM_LANGUAGE )

и запустите его как с SSL, так и без него. Опубликуйте оба результата здесь.

Опять же, жизненно важно, чтобы вы делали это в запросе, а не только в окне SSMS, потому что вам нужно увидеть, какой контекст безопасности фактически используется, простозапуск его в SSMS может дать вам другой ответ.

Если контекст такой же, попробуйте другое предложение Jeroen, повторите этот тест с @@ OPTIONS, чтобы увидеть, являются ли они причиной.Расшифровка результатов @@ OPTIONS может быть немного более трудоемкой (см. https://docs.microsoft.com/en-us/sql/t-sql/functions/options-transact-sql?view=sql-server-2017), поэтому сначала я просто проверим контекст безопасности. И @@ OPTIONS тоже не все фиксирует, возможно, вам все еще понадобитсяизучить настройки сервера, но они должны быть одинаковыми в SSMS и, следовательно, их легче просматривать (но их много).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...