2013-07-05 3 views
0

У меня проблема с созданием задания Quartz.NET (с использованием копии Quartz.NET, встроенной в веб-приложение, которое разрабатывает моя команда, если это имеет значение), который отправляет электронное письмо определенным людям, содержащим гиперссылка на контроллер/метод действий, который является частью одного и того же приложения.Как изменить свойство HttpRequest.ApplicationPath вручную?

Чтобы создать эту ссылку, я знаю, что некоторая жесткая кодировка неизбежна (из-за отсутствия фактического сеанса, созданного), но я хочу использовать как можно меньше жесткого кодирования, чтобы он, по крайней мере, имел некоторую свободу действий для изменения в случае, когда моя команда в конечном итоге хочет реорганизовать архитектуру приложения. К счастью, мне удалось найти способ вручную создать объект UrlHelper для задания Quartz (см. Call UrlHelper in models in ASP.NET MVC).

Мои проблемы в том, что мне нужно каким-то образом вручную установить виртуальный путь приложения, хранящийся в объекте HttpRequest. Это связано с тем, что веб-приложение не расположено в корне сайта, который мы используем.

Вы, ребята, знаете, как я могу это сделать? Я пробовал поиск в Google о том, как установить/изменить свойство HttpRequest.ApplicationPath, или на том, откуда поступают данные для этого свойства, но ничего существенного не появилось.

ответ

0

Как оказалось, свойство HttpRequest.ApplicationPath было пустым (я предполагаю, что это результат ручного создания объекта HttpRequest), поэтому то, что я закончил, было жестко-кодирование пути приложения в статическом поле в Config объект и используя это вместо этого.

@AntLac: Спасибо за помощь. Ваш ответ тоже сработает.

0

Это свойство только для чтения, как указано в документации, http://msdn.microsoft.com/en-us/library/system.web.httprequest.applicationpath.aspx. Вы можете, однако, сделать String.Replace() фактического корня в новом.

+0

Где я могу использовать String.Replace()? К сожалению, так как это для работы, я не могу опубликовать какой-либо фактический код, не спрашивая сначала своего босса, но код, который создает UrlHelper, почти дословно из того, что опубликовал в PJJ Pablo Fernández в вопросе, на который я ссылался. – user2154603

+0

Я новичок в .NET-программировании, поэтому я все еще изучаю его. – user2154603

+0

Я прошу прощения за задержку, я был в отпуске. HttpRequest.ApplicationPath возвращает строковый объект, поэтому вы должны приложить замену к нему, HttpRequest.ApplicationPath.Replace(). – AntLaC

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