2010-02-23 14 views
9

Próbowałem opublikować to na ServerFault bez powodzenia, więc próbuję tutaj.Tworzenie aplikacji bez interfejsu na maszynie programistycznej z asp.net

Zastanawiam się nad utworzeniem nowej domeny do przechowywania statycznych treści na mojej stronie internetowej i nadania jej gotowości tak jak Stackoverflow z ich static domain. Zanim zacznę więc kupować domenę i ją konfigurować, chciałem przetestować ją na mojej maszynie do rozwoju najpierw pod localhost (muszę wspomnieć, że planuję mieć IIS działający w mojej nowej domenie dla plików statycznych).

W związku z tym utworzyłem nową aplikację w ramach IIS i wyłączono uwierzytelnianie stanu sesji i formularzy. Kiedy moja główna aplikacja potrzebuje zasobów takich jak css, images i js, używam ścieżki do "statycznej" aplikacji, w której są hostowane.

Problem polega na tym, że gdy patrzę na żądanie i odpowiedź dla żądanych plików, nadal mają one zdefiniowany plik cookie session_id oraz plik cookie uwierzytelniania asp.net.

Czy jest to w ogóle możliwe, aby osiągnąć to, co próbuję zrobić na maszynie programistycznej, czy muszę po prostu iść do przodu i kupić nową domenę, z nadzieją, że wszystko będzie dobrze? Próbowałem przeczytać o domenie cookieless, ale nie mogę dowiedzieć się, co może mi brakować.

Aktualizacja

Moja konfiguracja była następująca. Stworzyłem dwie aplikacje internetowe. - Jedna aplikacja internetowa na stronie - jedna aplikacja internetowa za wszystko statycznych (CSS, obrazów, skryptów ...)

Obie aplikacje są dodawane do IIS i żaden z nich nie jest sub-stosowanie innych. (Oba są osobnymi witrynami w ramach struktury IIS).

Zastanawiam się, czy posiadanie obu witryn pod tym samym adresem IP mogło wyjaśnić moje wyniki, ale kiedy wdrożyłem obie witryny, problem zniknął.

+0

Czy możesz opisać swoją konfigurację nieco więcej? Mówisz, że tworzysz nową aplikację, ale naprawdę powinieneś stworzyć nową stronę internetową powiązaną z innym adresem IP i/lub numerem portu i/lub nazwą hosta. Nie możesz utworzyć nowej aplikacji w tej samej witrynie. Musisz utworzyć dwie oddzielne witryny. –

+0

@MarcoMiltenburg Cóż, to nie ja zadałem to pytanie, tylko postawiłem na niego pieniądze. OP musi prosić o nową stronę internetową na tej samej maszynie/IP. Ponieważ jest to tylko do celów rozwojowych. –

+0

Przepraszam za moją spóźnioną odpowiedź, chłopaki! Rzeczywiście interesowało mnie tylko to, że ta konfiguracja działa na maszynie programistycznej i mocno polegała na sprawdzaniu informacji o żądaniach za pomocą firebuga, aby upewnić się, że pliki cookie faktycznie nie były używane. Rzeczywiście czułem, że poniższe odpowiedzi nie miały wystarczająco dużo szczegółów, ale może powinienem był dodać więcej informacji na moje pytanie. Okazuje się, że po wdrożeniu mojej statycznej strony na innym hoście, to po prostu "działało". Zamierzam zaktualizować moje pytanie, aby podać szczegóły dotyczące mojej konfiguracji. – ak3nat0n

Odpowiedz

7

Sprawdź, czy masz następujące ustawienia web.config:

  • <sessionState mode="Off" />
  • <authentication mode="None" />

myślę, że to wszystko, choć jej nie testowane.Aby być bezpiecznym, można skorzystać z porady od Creating Static Content Website in IIS 7 który wyłącza wszystkie moduły i tylko ponowne pozwala im w miarę potrzeby:

<system.webserver> 
    <modules> 
     <clear /> 
     <add name="StaticFileModule" ... /> 
     ... 
    </modules> 
    ... 
</system.webserver> 

PS: Zobacz this answer wskazówki dotyczące ustawiania wartości cache.

1

Podstawowa idea:.

  1. Dodać nową stronę internetową w IIS (mapa go do subdomeny lub uczynić to miejsce całkowicie indywidualne Czasami suddomains nie wystarczą, jeśli użytkownicy uzyskują dostęp do witryny z http://example.com zamiast http://www.example.com ponieważ w pierwszym przypadku ciasteczka zostaną prawdopodobnie wysłane również do nowej subdomeny).
  2. WYŁĄCZ ASP.NET razem w IIS dla nowej witryny. Jeśli tylko obsługujących zawartość statyczną wtedy nie trzeba ASP.Net włączona
  3. Załaduj zawartość statyczną i połączyć z dala

referencyjny:
- Stopping cookies being set from a domain (aka "cookieless domain") to increase site performance
- How to respect "Serve static content from a cookieless domain" page speed rule in IIS6?
- Avoiding cookies while requesting static content

0

Czy próbowałeś Response.Cookies.Clear() na końcu metody obciążenia strony? To powinno wyeliminować wszystkie ciasteczka z obiektu Response i żadne pliki cookie nie będą wysyłane do klienta. Można to zrobić również w module sieciowym lub HttpHandler.

+0

Koncepcja, której szuka, to nie usuwanie ciasteczek, ale nie używanie ich w ogóle. –

+0

Więc nie chce, aby program ASP.NET tworzył sesję? Czy tego właśnie szuka? –

Powiązane problemy