2009-08-13 9 views
9

Mamy pewne procedury obsługi HTTP określone w naszym pliku web.config. Kiedy prowadziliśmy tę stronę za pośrednictwem projektu witryny sieci Web, wszystko działało dobrze. Ale z jakiegoś powodu, po przeniesieniu tego do projektu WAP i wskazaniu na platformę .NET 3.5, moduły obsługi nie działają, gdy wychodzę z witryny w IIS 7 na naszym serwerze dev. Czy muszę zrobić coś specjalnego w IIS7, inne niż określone niestandardowe procedury obsługi, które już istnieją w moim pliku web.config?Niestandardowe poręcze Http IIS7 i ASP.NET

Kiedy patrzę na sekcję Mapowania manipulatorów w IIS 7 dla naszej witryny, widzę 3 procedury obsługi wymienione z naszym niestandardowym rozszerzeniem. Wygląda więc na to, że podnoszą nasze programy obsługi określone w naszym pliku web.config. Ale wiem, że pracownicy, którzy pracowali na stronie innej niż wap, nie działają w tym projekcie WAP i nie wiem dlaczego.

Na przykład, gdy jeden z naszych koparki próbuje kopać kiedy odwołuje uzyskać:

Server Error in '/' Application. Błąd analizatora składni Opis: Wystąpił błąd podczas parsowania zasobu wymaganego do obsługi tego żądania. Sprawdź następujące szczegółowe informacje o błędzie analizowania i odpowiednio zmodyfikuj plik źródłowy.

Parser Error Message: Could not create type 'jaxHandler'. 

Source Error: 

Line 1: 
Line 2: 
Line 3: using System; 


Source File: /jaxHandler.ashx Line: 1 

Version Information: Microsoft .NET Framework Version:2.0.50727.3074; ASP.NET Version:2.0.50727.3074 

ponadto, gdy klikam na odnośnik na naszej stronie, która ma .customextension na nim handler nie wydaje się, aby go podnieść.

Więc po kliknięciu na hiperłącze, otrzymuję:

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Detailed Error InformationModule IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Requested URL http://sss:80/somename.prod 
Physical Path C:\www\sss\somename.prod 
Logon Method Anonymous 
Logon User Anonymous 

(I zastąpiły prawdziwą tekst z „” i somename naszej nazwy firmy z „sss”) w przypadku wyżej prywatności.

Jeśli zajrzę do sekcji obsługi HTTP w IIS7, widzę, że * .prod jest zarejestrowany. A oto, jak mamy go skonfigurować w naszym web.config w sekcji niestandardowej:

<add name="sss" path="*.prod" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="bitness32"/> 
+0

Proszę opracować. "To nie działa" nie mówi mi zbyt wiele. –

+0

ok, dodałem znacznie więcej szczegółów. – PositiveGuy

Odpowiedz

0

Co musisz zrobić, to zbudować swój kod.

Należy skopiować cały kod C# do pliku .ashx.cs. W rzeczywistości zalecam utworzenie nowego .ashx i skopiowanie kodu C# do pliku .ashx.cs.

Strony internetowe budowane dynamicznie. Projekty aplikacji WWW, podobnie jak każdy inny podobny typ projektu w Visual Studio, muszą mieć kod w plikach źródłowych i mieć ten kod wbudowany w zespół.

+0

. .ashx nie ma kodu za. Widzę. Tak, ponieważ był w projekcie strony internetowej. Gotcha – PositiveGuy

+0

Masz to, ale powiedz "strona internetowa" - to nie są projekty. –

+0

cóż, takie jakie są. – PositiveGuy

25

przypadku aplikacji ASP.NET uruchomionych na IIS7, HttpHandlers powinien być odwzorowany w sekcji <system.webServer> swojej web.config. W IIS6 zostały one odwzorowane w sekcji <system.web>.

<system.webServer> 
    <handlers> 
     <add name="HandlerName" 
      path="HandlerPath" verb="*" type="Handler.Type" 
      resourceType="Unspecified" /> 
    </handlers> 
</system.webServer> 
+1

tak, mamy nasz mapowany na webServer, ponieważ ta strona działa już na naszym serwerze prod w IIS7 – PositiveGuy

Powiązane problemy