working tag route not net form for data asp all .net asp.net-mvc firefox iis static-files

tag - La aplicación MVC de ASP.NET genera un error interno del servidor solo cuando se ve en Firefox



tag helpers asp net core (2)

(Soy nuevo en .Net y en el mundo de Microsoft en general, proveniente de un entorno de Java y Tomcat, así que tenlo en cuenta).

Estoy trabajando en mi primera aplicación .Net, usando Visual Studio 2013, C #, .Net 4.5, MVC 5 y EF 6. Es una aplicación bastante simple basada en la web, que usa la autenticación de Windows y los grupos de Active Directory para obtener autorización. Operaciones básicas de CRUD en una tabla en una base de datos de SQL Server.

No he desplegado la aplicación todavía. Todavía lo estoy desarrollando y probando en mi PC (con Windows 7). Cuando presiono Ctrl-F5 para probar la aplicación en Internet Explorer o en Google Chrome, todo funciona bien.

Sin embargo, si le digo a Visual Studio que acceda a él en Firefox, muestra la página SIN CSS o JavaScript. Puedo hacer clic en los enlaces dentro de la aplicación y navegar a las distintas páginas, que funcionan bien. Simplemente se muestran sin ningún CSS o JavaScript de trabajo. Cuando trato de ver manualmente uno de los archivos CSS o JavaScript, recibo un error interno del servidor (HTTP Error 500). Al revisar el archivo de registro se muestra un código de estado 500 para cada uno de los archivos CSS y JavaScript que la página intentaba cargar.

Estoy desconcertado, porque funciona bien desde Internet Explorer y desde Chrome. ¿Cómo podría el uso de un navegador web diferente causar este error interno del servidor?

Publico parte del código, pero en este momento no tengo idea de lo que sería útil ver. (Podría mostrar qué tipo de información adicional está registrando IIS Express, si la hubiera, pero no estoy seguro de dónde encontrarla, aparte de la línea que muestra el código de estado 500).

En algún momento, bastante temprano en el desarrollo, me di cuenta de que había llamado "versión" a algún campo de base de datos cuando quería que se llamara "Versión" (en mayúsculas). Hice una búsqueda / reemplazo global en toda la solución en esa cadena, en lugar de cambiar el nombre del campo. Es posible que algo importante se haya visto afectado por ese proceso, pero he hecho un hallazgo global en "Versión" (y en "versión") y no he encontrado nada importante.

Si es absolutamente necesario, probablemente vuelva a crear el proyecto desde cero y espero que no copie / pegue el mismo problema (o uno nuevo) en el nuevo proyecto, pero espero que alguien pueda venir. con algo más fácil de probar primero.

ACTUALIZAR

Aquí está el inicio de Views / Shared / _Layout.cshtml:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - Experiment 626</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head>

Aquí está App_Start / BundleConfig.cs:

using System.Web; using System.Web.Optimization; namespace Experiment626 { public class BundleConfig { // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate.min.js", "~/Scripts/jquery.validate.unobtrusive.min.js")); // Use the development version of Modernizr to develop with and learn from. Then, when you''re // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( "~/Scripts/bootstrap.js", "~/Scripts/respond.js")); bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap-theme.css", "~/Content/site.css")); } } }

ACTUALIZAR

Buscando en Firebug, para cada archivo CSS o JavaScript, los encabezados de solicitud y respuesta se ven así:

Encabezado de solicitud

GET /Content/site.css HTTP/1.1 Host: localhost:6365 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 Accept: text/css,*/*;q=0.1 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Referer: http://localhost:6365/ Connection: keep-alive Pragma: no-cache Cache-Control: no-cache

Cabecera de respuesta

HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.0 X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcV2FsbHkuSGFydHNob3JuXFZpc3VhbCBTdHVkaW8gMjAxM1xQcm9qZWN0c1xFeHBlcmltZW50NjI2XEV4cGVyaW1lbnQ2MjZcQ29udGVudFxzaXRlLmNzcw==?= Persistent-Auth: true X-Powered-By: ASP.NET Date: Tue, 25 Feb 2014 21:13:50 GMT Content-Length: 5870

ACTUALIZAR

Para comparar, aquí está el encabezado de solicitud cuando se usa Chrome:

Accept:text/css,*/*;q=0.1 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Cache-Control:no-cache Connection:keep-alive Host:localhost:6365 Pragma:no-cache Referer:http://localhost:6365/ User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36

ACTUALIZAR

En la página de error predeterminada mostrada por IIS, hay una sección de Información de error detallada, que contiene esto:

Module IIS Web Core Notification AuthenticateRequest Handler StaticFile Error Code 0x80070542 Requested URL http://localhost:6365/Content/site.css Physical Path C:/Users/Wally.Hartshorn/Visual Studio 2013/Projects/Experiment626/Experiment626/Content/site.css Logon Method NTLM Logon User SOMEDOMAIN/Wally.Hartshorn Request Tracing Directory //something.domain.com/SPIUsers1/Wally.Hartshorn/IISExpress/TraceLogFiles/EXPERIMENT626

Todavía no he podido averiguar cómo ver la excepción real que se produce para activar el código de estado 500.

ACTUALIZAR

Al investigar ese código de error, descubrí que aparentemente significa "O no se proporcionó un nivel de suplantación requerido o el nivel de suplantación proporcionado no es válido". Supongo que hay algo en la forma en que Firefox maneja la autenticación que es diferente a la forma en que Internet Explorer y Google Chrome, pero aún no tengo idea de cómo solucionarlo.

ACTUALIZAR

Como experimento, creé un nuevo proyecto MVC de ASP.NET en Visual Studio 2013, seleccionando la autenticación de Windows. Luego, sin realizar CUALQUIER cambio en esta nueva solución, presioné Ctrl-F5 para crearla y abrir la página de inicio predeterminada en Firefox. Recibo exactamente el mismo error en el proyecto intacto: HTTP Server Error 500.0, con un código de error de 0x80070542 , que indica "O no se proporcionó un nivel de suplantación requerido o el nivel de suplantación proporcionado no es válido".

Aparentemente, no tiene nada que ver con mi código, sino que es un problema básico con la configuración de Visual Studio 2013, IIS Express y / o Windows 7.

Estoy perplejo.


G_P me señaló la solución a mi problema. Al parecer, la causa raíz es que Firefox no funciona de manera predeterminada con la autenticación integrada de Windows, a menos que el sitio sea de confianza.

Para habilitar la autenticación integrada de Windows en Firefox:

  1. Introduzca about:config en la barra de direcciones.
  2. Reconozca el mensaje de advertencia de miedo.
  3. En la barra de búsqueda, ingrese network.automatic .
  4. Haga doble clic en network.automatic-ntlm-auth.trusted-uris .
  5. Ingrese la URL del servidor, por ejemplo, localhost o mycompany.com .

Después de eso, funciona bien.

Desafortunadamente, esto significaría que todos los miembros de la compañía que quisieron acceder a la aplicación utilizando Firefox deberían hacer este cambio (o el departamento de TI tendría que encontrar la manera de hacerlo). En esta aplicación en particular, eso no es un gran problema, porque la cantidad de usuarios será bastante pequeña. Para una aplicación posterior, probablemente tendré que averiguar algo más. (¿Quizás debería estar buscando en Windows Identity Foundation? Aunque suena un poco aterrador).

En cualquier caso, voy a llamar a esto "lo suficientemente bueno por ahora" y seguiré adelante con mi vida. Muchas gracias a todos los que me ayudaron!

PS Dos páginas con información potencialmente útil:


Tiene una cookie creada en el navegador anterior que estaba probando y que no se cierra en Firefox. Realmente dudo que el problema tenga algo que ver con Firefox.