2012-05-15 4 views
25

У меня есть ASP.NET с веб-приложением C#. Один из классов, которые я создал, должен использовать HttpContext.System.Web.HttpContext не распознан

Согласно http://msdn.microsoft.com/en-us/library/system.web.httpcontext(v=vs.90).aspx, HttpContext существует в пространстве имен System.Web в .NET 3.5 (это версия, которую я установил).

Однако, когда я пишу HttpContext. -> Я не вижу автозаполнения. Это то, что говорит мне, что HttpContext не распознается.

Я сделал домашнее задание и искал обычные решения: 1. Я добавил ссылку System.Web (щелкнув правой кнопкой мыши ссылку -> выбрав вкладку .NET и конкретную ссылку). 2. Я также включил эту строку в класс: using System.Web;

Скажите, пожалуйста, что еще я могу сделать. Если все будет хорошо, когда я напишу HttpContext. - Я должен видеть раскрывающийся список и быть в состоянии выбрать «Текущий» оттуда среди нескольких атрибутов/элементов. Я новичок в C# и Visual Studio (2008), но я думаю, что Autocomplete не работает хорошо, это хороший показатель отсутствия ссылок/имен/ошибок загрузки/что-то еще.

+0

Просто быстрый вопрос - Где вы пытаетесь использовать HttpContext? Это код? ASPX-файл? Другой класс? – Katalonis

+0

У вас есть правильное использование? System.Web, я думаю? –

+0

Andrew: Я использую System.Web. Katalonis, я пытаюсь использовать HttpContext внутри CLASS (файл .CS, добавленный в папку App_Code). [...] используя System.Web; коммунальных служб статический класс { статические утилиты() { } государственной статической силы LogError (Исключение ех) { System.Web.HttpContext контекст = System.Web.HttpContext.Current; ..... Так начинается класс, если это помогает! Спасибо! –

ответ

35

Конструктор редко используется, когда вы хотите создать экземпляр класса HttpContext. Я всегда использую статическое свойство HttpContext.Current, которое является текущим экземпляром, используемым всем приложением ASP.Net.

Для его использования убедитесь, что вы уже добавить ссылку на сборку System.Web.dll и импортировать system.web имен

+3

Я использую vs 2015 с dotNet 4.5, и это НЕ работает. В System.Web нет класса HttpContext. –

+0

... если вы не установите пакет NuGet «Microsoft.AspNet.WebApi» –

+0

это тоже не работает @JohnHenckel – PinoyDev

2
  1. Убедитесь, что сборка входит
  2. Убедитесь, что ссылка на DLL есть
  3. Try «решительность» и есть Visual Studio включает ссылку
  4. Debug, закройте и перезапустите приложение.

Этот класс должен работать.

UPDATE:

using System.Web 

class YourClass { 
    public YourClass() { 
    HttpContext _context = new HttpContext(your parameters) 
    } 
} 
+0

Здравствуйте, jefpw, спасибо, что ответили! Не могли бы вы немного рассказать о своем ответе? Как я уже сказал, я новичок. 1. Как включить сборку, возможно, я уже сделал это, не уверен, что вы имеете в виду? 2. Что касается включения ссылки, я сделал это, как описано выше (щелкнув правой кнопкой мыши ссылку -> выбрав вкладку .NET и конкретную ссылку на System.Web). 3. Что вы подразумеваете под попыткой «решить»? Большое спасибо! –

+0

См. Выше. HttpContext - довольно продвинутый класс, если вы новичок. Зачем нужен HttpContext. Я не использовал HttpContext в ASP.NET, и я использовал ASP.NET 4-5 лет. – iefpw

+0

iefpw: Мне нужен HttpContext для - из того, что я понимаю, HttpContext.Current.Request.RawUrl отображает текущий URL-адрес страницы (короткая форма), и я покажу эту информацию на специально настроенной странице ошибок. Это только мой второй сайт. Используя все ресурсы, трюки и советы, я могу найти онлайн. Ничего себе, 4 года работы в этой области. Поздравления! –

5

Это был простой случай не используя правильную структуру, с тем, что я имею в виду полная версия жира, а не стандартная «легкая» версия.

правой кнопкой мыши по проекту, а затем Свойства и убедитесь, что полную версию последней базы выбран т.е. «.NET Framework 4' , не» .NET Framework 4 Client Profile»

+1

СОВЕТ: для vs 2015 убедитесь, что вы установили пакет NuGet «Microsoft.AspNet.WebApi» в свой проект. Установка «Microsoft.AspNet.WebApi.Core» НЕ достаточна. –

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