Приложения Windows form для нескольких пользователей
Привет,
Я разработал одно приложение win forms, которое предназначено для преобразования документов word в PDF-файлы. Я отправил заявку клиентам. Он работает только для одного пользователя, а не для нескольких.
Не могли бы вы помочь мне с этим вопросом?
Спасибо,
С уважением,
Судхакар Читлам
Что я уже пробовал:
Приложения Windows form для нескольких пользователей
OriginalGriff
Что означает "не работает для нескольких пользователей"?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли.
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
Member 11968223
Ниже приведен код для преобразования файлов word в pdf. В моем клиентском местоположении это приложение отлично работает для одного пользователя. Они используют это приложение на сервере citrix. Он работает только для одного пользователя. Но он должен работать для 15 пользователей одновременно.
Ошибка: файл Word используется другим пользователем.
Они не могут конвертировать файл word в pdf для 15 пользователей одновременно.
Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация.
использование системы;
использование системы.Коллекции.Общий;
используя системы.Текст;
использование системы.Окна;
с помощью iTextSharp.текст;
с помощью iTextSharp.текст.формат PDF;
с помощью com.itextpdf.текст.формат PDF;
использование системы.ИО;
использование системы.Окна.Формы;
использование системы.Рисование;
использование системы.Нарезание резьбы;
используя системы.Сведения;
использование системы.ComponentModel;
использование Microsoft.Офис.- Взаимодействия.Слово;
пространство имен PDF_Generator
{
общественный разделяемого класса PDF_Generator : форма
{
string singleFilePath = строка.Пустой;
string singleFile = строка.Пустой;
string multiplefiles = строка.Пустой;
строки sourcePdf;
Диалоговое окно openfiledialog х;
общественные PDF_Generator()
{
метод InitializeComponent();
}
#регион Button_Click события
частная btnGenerate_Click недействительным(объект отправителя, EventArgs в электронной)
{
пробовать
{
int FileSize;
Microsoft.Офис.- Взаимодействия.Слово.Приложение word = новый Microsoft.Офис.- Взаимодействия.Слово.Приложение();
слово.DisplayAlerts = Microsoft.Офис.- Взаимодействия.Слово.WdAlertLevel.wdAlertsNone;
объект отсутствует = система.Отражение.Недостающий.Ценность;
object filename = (Object)singleFile;
refFalse объект = ложь;
объект refTrue = true;
FileInfo f = new FileInfo(singleFile);
Размер Файла = Преобразовать.ToInt32(f. длина);
if ((f. Length / (1024 * 1024)) > 10)
{
Ящик для сообщений.Show ("размер файла более 10 МБ. Пожалуйста, не закрывайте окно.", "информация", кнопки MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
}
строка selectedFileName = Path. GetFileNameWithoutExtension (singleFile)+ ". pdf";
Объект процесс = (объекта)преобразования.Метод toString(txtSelectDestination.Текст) + "\ \ " + selectedFileName;
объект fileFormat = WdSaveFormat.wdFormatPDF;
строки ВН = система.ИО.Путь.GetExtension(singleFile);
пробовать
{
слово.DisplayAlerts = Microsoft.Офис.- Взаимодействия.Слово.WdAlertLevel.wdAlertsNone;
Microsoft.Офис.- Взаимодействия.Слово.Документ doc = word.Документы.Открыть(Реф Реф именем, Реф refFalse, refTrue Реф, Реф отсутствует, отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует);
btnGenerate.Включен = истина;
progressBar1.Стиль = ProgressBarStyle.Шатер;
progressBar1. MarqueeAnimationSpeed = 50;
Указатель.Ток = Курсоры.WaitCursor;
док.Сохранить как(процесс Реф, Реф формат, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует);
объект saveChanges = WdSaveOptions.wdDoNotSaveChanges;
((_Document)doc).Объектов(справ метод SaveChanges, ссылка отсутствует, ссылка отсутствует);
doc = null;
((_Application)слово).Бросить(ссылка отсутствует, отсутствует ссылка ссылка отсутствует);
слово = null;
sourcePdf = txtSelectDestination.Текст + "\ \ " + выбранное имя файла;
строковый пароль = txtProtectedPass. Text;
строка InputFile = sourcePdf;
строковый параметр outputfile = @txtSelectDestination.Text + "\ \ " + "" + selectedFileName;
if (txtProtectedPass.Текст! = "")
{
используя (входной поток = новый файловый поток(входной файл, содержит filemode.Открой, Файловый Процесс.Читай, Файлообменник.))
{
используя (выходной поток = новый хранилище FileStream(Выходной_файл, содержит filemode.Создать, FileAccess.Пиши, Файлообменник.))
{
PdfReader reader = новый PdfReader(ввод);
PdfEncryptor.Зашифровать (- ридер, выход, правда, пароля, пароль, PdfWriter.ALLOW_SCREENREADERS);
}
}
Файл.Удалить(sourcePdf);
}
Указатель.Ток = Курсоры.AppStarting;
txtProtectedPass.Текст = "";
txtProtectedPass.Сосредоточить();
}
}
}
}
Dave Kreskowiak
Ваш клиент должен настроить Citrix для запуска вашего приложения так же, как если бы это было офисное приложение. Ваше приложение полностью зависит от Office. Поскольку Office обычно запускает только один экземпляр исполняемого файла, например Word.exe или Excel.exe на одной машине он не будет работать для нескольких пользователей на одной машине. Особое внимание в Citrix должно быть уделено тому, чтобы позволить нескольким людям запускать несколько офисных приложений одновременно, причем каждый пользователь имеет свой собственный экземпляр исполняемого файла. То же самое должно быть применено и к вашему заявлению.
В вашем коде нет ничего, что можно было бы исправить.