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

Откуда:
Сообщений: 61
Пытаюсь работать с ВЕБ-сервисом из сборки MS SQL.
1. При работе через обычную форму все работает вот такой код
        private void button2_Click(object sender, EventArgs e)
        {
         try
         {

            MBKI.ua.com.credithistory.secure.CigReports ser = new MBKI.ua.com.credithistory.secure.CigReports();
            MBKI.ua.com.credithistory.secure.CigWsHeader hed = new MBKI.ua.com.credithistory.secure.CigWsHeader();
            hed.UserName = "dddddddddddd";
            hed.Password = "***********";
            hed.Culture = "uk-UA";
             hed.Version = "1_0";
             ser.CigWsHeaderValue = hed;
                XmlDocument doc = new XmlDocument();
                doc.Load("Input.xml"); //Чтение данных из Xml файла 
                XmlNode xml1 = doc.DocumentElement;
                String respond = ser.GetSubjectPDBValidation(xml1);

             textBox5.Text = respond;
              }
            catch (Exception ee)
            {

                MessageBox.Show(ee.Message.ToString(), "");
            }

Все работает
То же самое делаю в сборке
public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure(Name = "mbki_test_Passport")]
    public static SqlInt32 mbki_test_Passport(SqlString Surname, SqlString Name, SqlString Fathers,
        SqlString DateOfBirth, SqlString DocumentSerial, SqlString DocumentNumber,
        SqlString DocumentIssueBy, SqlString DocumentIssueDate, SqlString TaxId, out  SqlString  respond)
    {
        SqlInt32 ret;
        respond = new SqlString("Тест");

        try
        {

            Mbki_sql_mvd.ua.com.credithistory.secure.CigWsHeader hed = new Mbki_sql_mvd.ua.com.credithistory.secure.CigWsHeader();
            Mbki_sql_mvd.ua.com.credithistory.secure.CigReports ser = new Mbki_sql_mvd.ua.com.credithistory.secure.CigReports();
            ser.Url = "https://secure.credithistory.com.ua/service/report/cigreports.asmx";
            hed.UserName = "фффффффффф";
            hed.Password = "*************";

            hed.Culture = "uk-UA";
            hed.Version = "1_0";
            ser.CigWsHeaderValue = hed;
            
            XmlDocument doc = new XmlDocument();
            doc.Load(@"D:\Visual Studio 2008\Projects\Mbki_sql_mvd\Mbki_sql_mvd\bin\Debug\Input.xml");
            XmlNode xml1 = doc.DocumentElement;
            
            respond = ser.GetSubjectPDBValidation(xml1);
            ret=1;
            
        }
        catch (Exception ee)
        {

            respond=ee.Message.ToString();
            ret = -1;
        }
        return ret;
                
      
    }
};


При обращении к веб сервису respond = ser.GetSubjectPDBValidation(xml1); надолго задумывается ,а потом выдает Unable to connect to the remote server
То есть нету доступа к нему. SQL-сервер не выпускает запрос.
Сборку и сериализацию создаю командой
CREATE ASSEMBLY [mbki_sql_mvd.XmlSerializers] from
'D:\Visual Studio 2008\Projects\Mbki_sql_mvd\Mbki_sql_mvd\bin\Debug\mbki_sql_mvd.XmlSerializers.dll'
WITH permission_set = EXTERNAL_ACCESS

GO

CREATE ASSEMBLY [mbki_sql_mvd] from
'D:\Visual Studio 2008\Projects\Mbki_sql_mvd\Mbki_sql_mvd\bin\Debug\mbki_sql_mvd.dll'
WITH permission_set = EXTERNAL_ACCESS
GO

ALTER ASSEMBLY [Mbki_sql_mvd]
 WITH  VISIBILITY =  ON 
go 
CREATE PROCEDURE [dbo].[mbki_test_Passport]
	@Surname [nvarchar](60),
	@Name [nvarchar](60),
	@Fathers [nvarchar](60),
	@DateOfBirth [nvarchar](12),
	@DocumentSerial [nvarchar](3),
	@DocumentNumber [nvarchar](6),
	@DocumentIssueBy [nvarchar](80),
	@DocumentIssueDate [nvarchar](12),
	@TaxId [nvarchar](10),
	@respond [nvarchar](250) OUTPUT
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [Mbki_sql_mvd].[StoredProcedures].[mbki_test_Passport]
GO

EXEC sys.sp_addextendedproperty @name=N'AutoDeployed', @value=N'yes' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'mbki_test_Passport'
GO

EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'mbki_test_Passport.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'mbki_test_Passport'
GO

EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=14 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'mbki_test_Passport'
GO


Как разрешить сборке обращаться к внешнему ВЕБ-сервису?
15 июн 12, 12:42    [12719078]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к WEB-сервису из сборки  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Я бы сделал следующее:
1. Проверить, под каким экаунтом запускается SQL Server.
2. Попробовать
CREATE ASSEMBLY...WITH PERMISSION_SET = UNSAFE
.
15 июн 12, 12:54    [12719177]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к WEB-сервису из сборки  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Roman35,

ай какой нехороший сервер, не выпускает, блин.

Дайте сответствующие разрешения учётной записи из под которй запущен процесс сервера.
15 июн 12, 12:54    [12719182]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к WEB-сервису из сборки  [new]
Roman35
Member

Откуда:
Сообщений: 61
Ken@t
Roman35,

ай какой нехороший сервер, не выпускает, блин.

Дайте сответствующие разрешения учётной записи из под которй запущен процесс сервера.



Как это сделать ?

SQL-сервер находится на моей машине.Права локального админа имеются,ОС Windows 7. Процесс SQL -сервера запущен под Network Service
15 июн 12, 13:09    [12719334]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к WEB-сервису из сборки  [new]
Roman35
Member

Откуда:
Сообщений: 61
Jovanny
Я бы сделал следующее:
1. Проверить, под каким экаунтом запускается SQL Server.
2. Попробовать [src]
CREATE ASSEMBLY...WITH PERMISSION_SET = UNSAFE



Пробовал разные значения-не помогает
15 июн 12, 13:16    [12719389]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа к WEB-сервису из сборки  [new]
Roman35
Member

Откуда:
Сообщений: 61
Roman35,

Всетаки ЗАРАБОТАЛО после того как перезапустил службу сервера под своим екаунтом!
15 июн 12, 13:30    [12719559]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить