powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Права на работу с Office в Сеансе #0
1 сообщений из 1, страница 1 из 1
Права на работу с Office в Сеансе #0
    #37256954
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас установлен MS SQL Server 2005 64bit на MS Server 2008 64bit
Код: plaintext
1.
Microsoft SQL Server  2005  -  9 . 00 . 5000 . 00  (X64)   Dec  10   2010   10 : 38 : 40    Copyright (c)  1988 - 2005  Microsoft Corporation  Standard Edition ( 64 -bit) on Windows NT  6 . 0  (Build  6002 : Service Pack  2 )

А так же Office 32bit
MS Office Word 2007 (12.0.6545.5000) SP2 MSO (12.0.6554.5001)
MS Office Excel 2007 (12.0.6545.5004) SP2 MSO (12.0.6554.5001)

Из SQL через xp_cmdshell запускается программа(Blank.exe), которая формирует отчеты в Word и Excel
Если я запускаю эту программу сам, то есть она выполняется в моем сеансе, то программа отрабатывает идеально.
Если я запускаю через xp_cmdshell
Код: plaintext
1.
2.
3.
DECLARE @cmd nvarchar( 400 )
SET @cmd = N'C:\Report\Blank.exe'
exec master.dbo.xp_cmdshell @cmd
то есть в сеансе #0(так как сервер запущен как служба), то возникает ошибка "Ошибка в Word."

Процедура xp_cmdshell разрешена

SQL код запускается под Login "HPSERVER\Developer"(Windows authentication)
"HPSERVER\Developer" является
1)sysadmin,bulkadmin, public
2)Имеет сопоставление во всех базах
3)Windows login "HPSERVER\Developer" является администратором

SQL Server запущен под учетной записью "HPSERVER\MSSQLServer"
1)Windows Login "HPSERVER\MSSQLServer" является администратором

Даже в Component Services пометили что запускать нужно от имени встроенной учетной записи "HPSERVER\Administrator"


Права на папку, где лежат файлы есть у всех.(Everyone)

Что бы быть увереным, что это не косяк моего приложения, я его упростил, и все тесты делаю на нем.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using Word = Microsoft.Office.Interop.Word;

namespace Blank
{
    class Program
    {
        static void Main(string[] args)
        {
            Word._Application AppWord = new Word.Application();
            Word._Document WordDoc = null;

            Object oFalse = false;
            Object oMissing = Missing.Value;
            Object oTemplatePath = @"C:\TMP\1.doc";
            Object fileFormat = (Object)Word.WdSaveFormat.wdFormatDocument;
            try
            {
                WordDoc = AppWord.Documents.Add(ref oTemplatePath, ref oMissing, ref fileFormat);
                Object oSaveAsFile = @"C:\TMP\SampleDoc.doc";
                WordDoc.SaveAs(ref oSaveAsFile, ref fileFormat);
            }
            catch (Exception ex)
            {
                Console.WriteLine(" #1 " + ex.Message);
            }
            finally
            {
                if (WordDoc != null)
                    WordDoc.Close(ref oFalse, ref oMissing, ref oMissing);

                if (AppWord != null)
                    AppWord.Quit(ref oMissing, ref oMissing, ref oMissing);
            }
        }
    }
}

Кто сталкивалcя c подобной проблемой? Как она решается? На что нужно обратить внимание?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Права на работу с Office в Сеансе #0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]