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

Откуда: Москва
Сообщений: 2459
Есть ENDPOINT
select * from sys.soap_endpoints
name                                                                                                                             endpoint_id principal_id protocol protocol_desc                                                type type_desc                                                    state state_desc                                                   is_admin_endpoint is_sql_language_enabled wsdl_generator_procedure                                                                                                                                                                                                                                         default_database                                                                                                                 default_namespace                                                                                                                                                                                                                                                default_result_schema default_result_schema_desc                                   is_xml_charset_enforced is_session_enabled session_timeout login_type                                                   header_limit
-------------------------------------------------------------------------------------------------------------------------------- ----------- ------------ -------- ------------------------------------------------------------ ---- ------------------------------------------------------------ ----- ------------------------------------------------------------ ----------------- ----------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------- ------------------------------------------------------------ ----------------------- ------------------ --------------- ------------------------------------------------------------ ------------
SH_WebService 65536 258 1 HTTP 1 SOAP 0 STARTED 0 0 [master].[sys].[sp_http_generate_wsdl_defaultcomplexorsimple] SH_Price http://tempuri.org 1 STANDARD 1 0 60 WINDOWS 4096

Есть принципалы на уровне сервера:
select * from sys.server_principals where principal_id in(1,2,283,258)
name                                                                                                                             principal_id sid                                                                                                                                                                          type type_desc                                                    is_disabled create_date             modify_date             default_database_name                                                                                                            default_language_name                                                                                                            credential_id
-------------------------------------------------------------------------------------------------------------------------------- ------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---- ------------------------------------------------------------ ----------- ----------------------- ----------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------
sa 1 0x01 S SQL_LOGIN 1 2003-04-08 09:10:35.460 2007-05-28 12:20:38.290 master us_english NULL
public 2 0x02 R SERVER_ROLE 0 2005-10-14 01:36:06.923 2005-10-14 01:36:06.923 NULL NULL NULL
NT AUTHORITY\SYSTEM 258 0x010100000000000512000000 U WINDOWS_LOGIN 0 2006-01-07 03:15:03.967 2006-01-07 03:15:03.977 master us_english NULL
VS2005\Administrator 283 0x010500000000000515000000B3AFB0BA8F3C67D06479CDA1F4010000 U WINDOWS_LOGIN 0 2007-03-06 14:44:15.280 2007-03-09 22:28:34.137 master us_english NULL

Им выданы разрешения на CONNECT (и на запуск процедур, реализующих конкретные вебметоды тоже)
select * from sys.server_permissions
class class_desc                                                   major_id    minor_id    grantee_principal_id grantor_principal_id type permission_name                                                                                                                  state state_desc
----- ------------------------------------------------------------ ----------- ----------- -------------------- -------------------- ---- -------------------------------------------------------------------------------------------------------------------------------- ----- ------------------------------------------------------------
105 ENDPOINT 2 0 2 1 CO CONNECT G GRANT
105 ENDPOINT 3 0 2 1 CO CONNECT G GRANT
105 ENDPOINT 4 0 2 1 CO CONNECT G GRANT
105 ENDPOINT 5 0 2 1 CO CONNECT G GRANT
105 ENDPOINT 65536 0 283 258 AL ALTER G GRANT
105 ENDPOINT 65536 0 283 258 CL CONTROL G GRANT
105 ENDPOINT 65536 0 283 258 CO CONNECT G GRANT
105 ENDPOINT 65536 0 283 258 TO TAKE OWNERSHIP G GRANT
105 ENDPOINT 65536 0 283 258 VW VIEW DEFINITION G GRANT

Однако, при обращении к WEB-сервису
http://localhost:30/sh_endpoint/price_service

получается такой ответ
HTTP/1.1 401 Unauthorized
Content-Length: 0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
Server: Microsoft-SQL/9.0 Microsoft-HTTPAPI/1.0
Date: Sun, 01 Jul 2007 19:42:07 GMT
Connection: close
Proxy-Support: Session-Based-Authentication

браузер этот ответ показывает как:
This error (HTTP 501 Not Implemented or HTTP 505 Version Not Supported) means that the website you are visiting doesn't currently have the ability to display the webpage, or support the HTTP version used to request the page

А студия как
The request failed with HTTP status 501: Not Implemented.

Сама по себе изначальная команда создания сервиса была такая:
CREATE ENDPOINT [SH_WebService] 
	AUTHORIZATION [NT AUTHORITY\SYSTEM]
	STATE=STARTED
	AS HTTP 
		(
		PATH=N'/sh_endpoint/price_service', 
		PORTS = (CLEAR), AUTHENTICATION = (NTLM, KERBEROS, INTEGRATED), 
		SITE=N'localhost', 
		CLEAR_PORT = 30, 
		COMPRESSION=DISABLED
		)
	FOR SOAP 
		(
		WEBMETHOD 'GetAllPrice'		    ( NAME=N'[SH_Price].[dbo].[GetAllPrice]',		  SCHEMA=DEFAULT, FORMAT=ALL_RESULTS), 
                          ...
		), 
		BATCHES=DISABLED, 
		WSDL=N'[master].[sys].[sp_http_generate_wsdl_defaultcomplexorsimple]', 
		SESSIONS=DISABLED, 
		SESSION_TIMEOUT=60, 
		DATABASE=N'SH_Price', 
		NAMESPACE=N'http://tempuri.org', 
		SCHEMA=STANDARD, 
		CHARACTER_SET=XML
	)

При создании сервиса IIS был остановлен как и положено, порт этот свободен, а этот адрес был зарезервирован для SQL
exec sp_reserve_http_namespace N'http://localhost:30/sh_endpoint'

В чем тут грабли? Как разрешить все-таки браузеру (или хотя бы студийному обозревателю для начала) обратиться к сервису SQL2005???
2 июл 07, 00:14    [4336293]     Ответить | Цитировать Сообщить модератору
 Re: Разрешения на ENDPOINT  [new]
vbnet2000
Member [заблокирован]

Откуда: Москва
Сообщений: 2459
UP
2 июл 07, 11:57    [4337462]     Ответить | Цитировать Сообщить модератору
 Re: Разрешения на ENDPOINT  [new]
vbnet2000
Member [заблокирован]

Откуда: Москва
Сообщений: 2459
Блин, ну никак не могу Асилить, чего надо, чтоб NT AUTHORITY\SYSTEM получила право коннекта на EndPoint. Как по логике вещей - так это право есть (см выше). Однако браузер пишет HTTP 501 Not Implemented or HTTP 505 Version Not Supported.
Но похоже чего-то все-таки не хватает. Неужели так никто и не подскажет - чего именно?
3 июл 07, 13:38    [4343642]     Ответить | Цитировать Сообщить модератору
 Re: Разрешения на ENDPOINT  [new]
vbnet2000
Member [заблокирован]

Откуда: Москва
Сообщений: 2459
Мда, непонятная история. Разрешения в вообще-то выдал уже все, которые смог придумать... Причем уже на все учетные записи, что нашел у себя в SQL. Но толку никакого.

Еще нашел я описание какого-то бага в HTTPSYS, который возникает при использовании Web-служб в SQL2005. Там все тоже крутится вокруг кода возврата HttpQueryServiceConfiguration completed with 1168, который у меня выдает перечислитель конфигурации HTTPSYS.

Там рекомендуется добавить новый ключ реестра - HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\DisableEndpointSharing, а потом удалить точку прослушивания в драйвере. Только ж если бы она удалялась... Хотя непонятно, в этом ли баге дело вообще...

Хоть у кого-нибудь работают WEB-Сервисы в SQL2005 - или это просто рекламная туфта какая-то от MS - и все это не работоспособно в принципе???

PS. Биндится на 80-й порт не предлагать - там работает Шарпоинт и сдохнет и TFS и все остальное как следствие. Те реально рабочий порт НЕ ДОЛЖЕН быть 80 - как предлагается во всех букварях - то, что он свободен - это чисто из области фантазий...

К сообщению приложен файл. Размер - 0Kb
3 июл 07, 17:15    [4345654]     Ответить | Цитировать Сообщить модератору
 Re: Разрешения на ENDPOINT  [new]
vbnet2000
Member [заблокирован]

Откуда: Москва
Сообщений: 2459
Не понимаю, я единственный человек в рунете, что-ли, который поверил MS, что SQL2005 якобы имеет гибкую и рабоспособную WEB-службу, или просто из принципа никто не отвечает...

Эй люди, у кого-нибудь это все работает? Как вы этого добились?
4 июл 07, 14:04    [4349654]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Разрешения на ENDPOINT  [new]
epicrisis
Member

Откуда:
Сообщений: 1
vbnet2000, думаю вызвать эндпоинт все таки получается, просто надо вызывать то, что реализовано для просмотра из браузера, а именно: http://localhost:30/sh_endpoint/price_service?wsdl
28 фев 12, 14:12    [12163670]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить