Я хочу попробовать перейти на VNext из Asp.Net MVC 3, я использовал проект службы Windows (http://www.interworks.com/blogs/banderton/2009/10/30/long-running-tasks-aspnet), но это не работает на VNext, потому что у него нет надлежащего System.ServiceModel
ссылка, и я не могу добавить dll. Есть ли способ вокруг? Вы порекомендовали бы другие способы запуска длинных задач, таких как большой импорт файлов/вычислений с помощью VNext?Asp.Net VNext Служба Windows
ответ
Как правило, нет - не из-за каких-либо функций в ASP.NET vNext (это было возможно с .NET 1.0), а из-за разрешений: процесс должен выполняться в контексте безопасности с высоким уровнем привилегий или иметь возможность олицетворять такую учетную запись пользователя для управления службами Windows.
w3wp.exe
(процесс хостинга пула приложений, а также расширение, пул приложений и приложения в нем) обычно выполняются под учетной записью пользователя с наименьшими привилегиями (часто NT AUTHORITY\NETWORK SERVICE
или пользовательской учетной записью с достаточными разрешениями для записи в корневой каталог веб-сайта, сервер базы данных и не намного больше (в последних версиях Windows это еще больше сокращено до понятия «учетной записи службы», в которой работают ваш рабочий процесс и пулы).
Самое легкое решение состоит в том, чтобы создать учетную запись пользователя с необходимыми привилегиями для управления службами и запустить процесс пула приложений под этой учетной записью пользователя, но я не рекомендую это делать.
Вместо этого создайте новую службу Windows, которая затем управляет другой службой (или если это ваша собственная служба, сделайте это в-proc), которая использует некоторую форму IPC для связи с вашим приложением ASP.NET, чтобы закрыть себя и выполнять другие задачи. Например, вы можете посмотреть на named-pipes.
Если вам нужно запустить ASP.NET в службе Windows, вы можете сделать это прямо сейчас с помощью ASP.NET 5. Я написал подробный пост о том, как сделать это здесь: http://taskmatics.com/blog/host-asp-net-in-a-windows-service/
- 1. ASP.NET vNext Kestrel + проверка подлинности Windows
- 2. Аутентификация Windows для vNext
- 3. Служба ASP.NET - Интернет или Windows?
- 4. Asp.net vNext Cookie Authentication
- 5. ASP.NET vnext бен длл
- 6. Thread.Sleep в Asp.net vNext
- 7. vNext vs ASP.NET 5
- 8. ELMAH на ASP.NET vNext?
- 9. Аутентификация претензий ASP.NET vNext
- 10. ASP.Net vNext Папка App_Data
- 11. ASP.NET 5 (vNext) - Конфигурация
- 12. ASP.NET vNext - Локализация (.resx)
- 13. asp.net vnext и XDocument
- 14. ASP.NET vnext и ServiceStack.redis
- 15. ASP.NET VNext Request.Properties
- 16. ASP.Net vnext beta 5 reference non vnext project
- 17. ASP.NET ядро, как Windows, служба Wwwroot расположения
- 18. служба микро windows в приложении ASP.NET MVC
- 19. Миграция ASP.NET MVC Маршруты в ASP.NET vNext
- 20. DomainRouting в vNext (Asp.net 5)
- 21. ASP.NET VNEXT DNU Ошибка восстановления
- 22. ASP.NET vNext. Общий шаблон редактора
- 23. Использование PostgreSQL из ASP.Net vNext
- 24. Аутентификация в ASP.NET 5 (vNext)
- 25. ASP.NET 5 (vNext) и SignalR
- 26. ASP.NET vNext с машинописными текстами
- 27. Настройка NodaTime под Asp.Net vnext
- 28. ASP.NET vNext EF7 dbContext issues
- 29. AssemblyNeutral Атрибут в ASp.net vnext
- 30. ASP.NET VNext Class Library System.Runtime.Serialization
ли вы рекомендовать что-то конкретное? Я хотел бы использовать этот http://www.interworks.com/blogs/banderton/2009/10/30/long-running-tasks-aspnet, но vnext не имеет надлежащей System.ServiceModel lib, и я не могу добавить ссылку dll – user007
@ user007 'System.ServiceModel' является WCF (' System.ServiceProcess' является службой Windows). Статья, с которой вы связаны, заключается в разработке службы WCF, которая работает в службе Windows. .NET по-прежнему включает 'System.ServiceModel.dll' - вы, вероятно, смотрите не в том месте. – Dai
Одна из проблем заключается в том, что я не могу добавить свою библиотеку в vnext из проекта библиотеки C#, который содержит интерфейс IJobService, еще одна проблема заключается в том, что ссылка System.ServiceModel отсутствует в vnext. Я попытался использовать nuget, чтобы найти его, добавив его в ссылку, но проблема такая же: http://s10.postimg.org/56n8xg0zt/Captursssse.png Я предполагаю, что на этом этапе vnext не поддерживает ссылки из dll, и, возможно, позже это будет быть реализованы? – user007