2012-05-15 14 views
25

Mam aplikację ASP.NET z aplikacją C#. Jedna z utworzonych przez mnie klas musi używać HttpContext.System.Web.HttpContext nie został rozpoznany

Zgodnie z http://msdn.microsoft.com/en-us/library/system.web.httpcontext(v=vs.90).aspx, HttpContext istnieje w przestrzeni nazw System.Web w .NET 3.5 (jest to wersja, którą zainstalowałem).

Jednak, gdy piszę HttpContext. -> Nie widzę autouzupełniania. To właśnie mówi mi, że HttpContext nie jest rozpoznawany.

Zrobiłem swoją pracę domową i szukałem zwykłych rozwiązań: 1. Dodałem odniesienie do System.Web (klikając prawym przyciskiem myszy Referencje -> wybierając kartę .NET i konkretną referencję). 2. Zadbałem również o uwzględnienie tej linii w klasie: using System.Web;

Proszę powiedzieć, co jeszcze mogę zrobić. Jeśli wszystko pójdzie dobrze, kiedy piszę HttpContext. - Powinienem zobaczyć listę rozwijaną i móc wybrać "Current" spośród kilku atrybutów/elementów. Jestem nowy z C# i Visual Studio (2008), ale myślę, że autouzupełnianie nie działa dobrze jest dobrym wskaźnikiem braku odniesienia/przestrzeni nazw/błędów ładowania/cokolwiek innego.

+0

Wystarczy szybkie pytanie - gdzie próbujesz użyć HttpContext? Czy to kod? Plik ASPX? Kolejna klasa? – Katalonis

+0

Czy masz prawidłowe używanie? System.Web, tak myślę? –

+0

Andrew: Używam System.Web. Katalonis, próbuję użyć HttpContext wewnątrz klasy (plik .CS dodany do folderu App_Code). [...] przy użyciu systemu.Sieć; public static class Narzędzia { statyczne (Utilities) { } public static void logError (Exception ex) { System.Web.HttpContext context = System.Web.HttpContext.Current; ..... Tak zaczyna się lekcja, jeśli pomaga! Dziękuję Ci! –

Odpowiedz

35

Konstruktor jest rzadko używany, gdy chcesz instancję klasy HttpContext. Zawsze używam właściwości statycznej HttpContext.Current która jest bieżącą instancją używaną przez wszystkie aplikacje ASP.Net.

za korzystanie z niego upewnij się, że już dodać referencję do zespołu System.Web.dll i importować system.Web nazw

+3

Używam vs 2015 z dotNet 4.5 i to NIE działa. System.Web nie ma żadnej klasy HttpContext. –

+0

... chyba że zainstalujesz pakiet NuGet "Microsoft.AspNet.WebApi" –

+0

to nie działa albo @JohnHenckel – PinoyDev

2
  1. Upewnij się, że montaż jest wliczony
  2. Upewnij się, że odniesienia do dll jest tam
  3. Try „determinacja” i mieć Visual Studio zawierają odniesienie
  4. Debug, zamknij i uruchom ponownie aplikację.

Ta klasa powinna działać.

UPDATE:

using System.Web 

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

Witaj jefpw, dziękuję za odpowiedź! Czy mógłbyś nieco rozwinąć swoją odpowiedź? Jak już powiedziałem, jestem nowy. 1. Jak dołączyć zespół, być może już to zrobiłem, nie wiem, co masz na myśli? 2. Jeśli chodzi o uwzględnienie odniesienia, zrobiłem to tak, jak opisano powyżej (klikając prawym przyciskiem myszy Referencje -> wybierając kartę .NET i konkretne odniesienie do System.Web). 3. Co rozumiesz przez próbę "rozwiązania"? Wielkie dzięki! –

+0

Patrz wyżej. HttpContext jest dość zaawansowaną klasą, jeśli dopiero zaczynasz. Dlaczego potrzebujesz HttpContext. Nie użyłem HttpContext w ASP.NET i korzystałem z ASP.NET przez 4-5 lat. – iefpw

+0

iefpw: Do czego potrzebuję HttpContext - z tego co rozumiem, HttpContext.Current.Request.RawUrl wyświetla bieżący adres URL strony (jego krótka forma), a ja wyświetlę tę informację na specjalnie spersonalizowanej stronie błędu. To jest tylko moja druga strona internetowa. Korzystając ze wszystkich zasobów, sztuczek i porad, które mogę znaleźć w Internecie. Wow, 4 lata pracy w polu. Gratulacje! –

5

Był to prosty przypadek nie stosując odpowiednie ramy, przez które mam na myśli pełna wersja tłuszczu zamiast domyślnej wersji "light".

prawym przyciskiem myszy na projekt, a następnie Właściwości i upewnij pełną wersję najnowszego ramach wybrano IE .NET Framework 4' , nie '.NET Framework 4 Client Profile”

+1

WSKAZÓWKA: dla vs 2015, upewnij się, że instalujesz pakiet NuGet "Microsoft.AspNet.WebApi" w swoim projekcie. Instalacja "Microsoft.AspNet.WebApi.Core" nie jest wystarczająca. –

Powiązane problemy