2016-07-25 3 views
1

У меня есть один сценарий, в котором я должен вызывать веб-сайт из расписания службы Windows в определенное время. Мне нужно получить некоторые ресурсы HTML, а затем отправить его по электронной почте с помощью службы Windows. Может ли их любая возможность вызывать веб-ресурс через службу Windows? Я открыт для любой реализации с .NET framework.Позвоните в ресурс сайта через службу Windows

С уважением

+1

Принимали ли вы посмотрите на классе HttpClient? вы можете сделать http-звонки на ваш сайт (который может вернуть разметку) из вашего кода службы Windows. – Shyju

+0

Есть ли способ получить PDF из HTML, потому что мне нужно отправить электронное письмо с PDF. –

+0

Может быть, проще сделать и отлаживать общее приложение, запущенное из Windows Scheduler? –

ответ

0

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

Это сложнее, чем кажется. Компоненты, отображающие HTML на просматриваемой веб-странице, ожидают рабочего стола, которого нет в службе Windows.

Тогда вам все равно нужно отобразить HTML в PDF-файл, что является чем-то другим, что нет встроенной поддержки в .Net. Вам понадобится сторонняя библиотека, например GhostScript или одна из Adobe (не помните имя, но это дорого).

Когда вы делаете это с рабочего стола, Adobe Acrobat делает тяжелую работу, но это недоступно для службы, потому что Acrobat также требует рабочего стола.

Если вы можете найти способ визуализации HTML без рабочего стола или интерактивного сеанса, вы можете визуализировать HTML в PDF с помощью Ghostscript.Net и system.net.mail.

Если это действительно не должно быть услугой, это будет дневная работа в VB.Net или C#, однако, если вам действительно нужна ее служба Windows, это будет очень сложно.

Новой информация

Видимо PhantomJS может работать без головы и делает веб-страницы (см ссылка ниже)

+0

Автор не писал, насколько сложны «ресурсы httml», ajaxified и т. Д. Возможно, вы правы, но это зависит от сложности и метода. У C# есть несколько PDF-библиотек, таких как iText –

+0

Я объяснял альтернативный метод, который действительно работал бы и мог быть написан в разумные сроки. Рендеринг HTML внутри службы Windows будет кошмаром. Я не знаю, какие библиотеки Windows я знаю, потому что все они требуют сеанса рабочего стола. Я не верю, что iText может быть вызван из службы .net. –

+0

Учитывая, что вопрос был сформулирован, я вполне уверен, что автор не понимал, что было задействовано. Настольное приложение, вызванное из запланированной задачи, будет выполнять именно то, что было запрошено, с меньшей стоимостью работы за день. Служба, вероятно, никогда не сделает то, что было запрошено, потому что для точного отображения современной веб-страницы требуется текущий браузер, такой как Chrome или Firefox или IE, ни один из которых не может быть вызван службой Windows. –

Смежные вопросы