2009-08-13 18 views
9

Tenemos algunos controladores HTTP especificados en nuestro web.config. Cuando estábamos ejecutando este sitio a través de un proyecto de sitio web, todo funcionó bien. Pero por alguna razón, después de trasladar esto a un proyecto WAP y apuntar al framework .NET 3.5, los manejadores no funcionan cuando abro el sitio en IIS 7 en nuestro cuadro dev. ¿Debo hacer algo especial en IIS7 aparte de los manejadores personalizados especificados que ya existen en mi web.config?Gestores de Http personalizados IIS7 y ASP.NET

Cuando miro la sección Asignaciones de controlador en IIS 7 para nuestro sitio, veo los 3 manejadores listados con nuestra extensión personalizada. Parece que está recogiendo nuestros controladores especificados en nuestro web.config. Pero sé que los controladores que trabajaban en un sitio web no wap no están trabajando en este proyecto WAP y no sé por qué.

Por ejemplo, cuando uno de nuestros manipuladores trata de una patada en cuando se hace referencia consigo:

Error de servidor en la aplicación '/'. Error del analizador Descripción: Se produjo un error durante el análisis de un recurso necesario para atender esta solicitud. Revise los siguientes detalles de error de análisis específicos y modifique su archivo de origen de manera adecuada.

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 

Por otra parte, cuando trato de hacer clic en un enlace en nuestro sitio que tiene .customextension en él no parece el manejador para recogerlo.

Así que cuando hago clic en el hipervínculo, me sale:

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 

(que han reemplazado el texto real con 'algunnombre' y nuestro nombre de la empresa con 'sss') en el caso anterior para la privacidad.

Si miro en la sección de Http Handlers en IIS7, veo que * .prod está registrado. Y aquí es cómo lo tenemos instalado en nuestro web.config bajo la sección personalizada:

<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

Por favor, elabore. "No funciona" no me dice mucho. –

+0

bien, agregué muchos más detalles. – PositiveGuy

Respuesta

0

Lo que debes hacer es crear tu código.

Debe copiar todo el código C# en un archivo .ashx.cs. De hecho, te recomiendo que crees un .ashx nuevo y copies el código C# en su archivo .ashx.cs.

Los sitios web se crean dinámicamente. Los proyectos de aplicaciones web, como cualquier otro tipo de proyecto similar en Visual Studio, necesitan tener código en los archivos fuente, y que el código se convierta en un ensamblado.

+0

.ashx no tiene un código detrás. Ya veo. Sí, porque estaba en un proyecto de sitio web. Gotcha – PositiveGuy

+0

Lo tienes, pero di "sitio web" - no son proyectos. –

+0

bueno, más o menos así. – PositiveGuy

25

para las aplicaciones ASP.NET que se ejecutan en IIS 7, HttpHandlers debería corresponderse en la sección <system.webServer> de su web.config. En IIS6, se asignaron en la sección <system.web>.

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

sí, tenemos la nuestra asignada a webServer porque este sitio ya se está ejecutando en nuestro servidor de prod en IIS7 – PositiveGuy

Cuestiones relacionadas