Configuration d'ASP.NET MVC2 sur Apache 2.2 à l'aide de mod_aspdotnet

En essayant d'obtenir un site Web Microsoft MVC2 pour fonctionner sur le serveur Web Apache 2.2 (exécuté sous Windows) qui utilise le module mod_aspdotnet. Possédez plusieurs hôtes virtuels ASP.NET en cours d'exécution, en essayant d'en ajouter un autre. MVC2 n'a PAS de page par défaut (comme la première version de MVC avait, par exemple, default.aspx). J'ai essayé diverses modifications à config: commenté 'DirectoryIndex', l'a changé en '/'. Définissez 'ASPNET' sur 'Virtual', ne charge pas la première page, obtenez toujours: '403 Interdit, vous n'avez pas la permission d'accéder à / sur ce serveur'.

Voici ci-dessous mon http.conf:

LoadModule aspdotnet_module "modules/mod_aspdotnet.so" AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo <IfModule aspdotnet_module> # Mount the ASP.NET /asp application #AspNetMount /MyWebSiteName "D:/ApacheNET/MyWebSiteName.com" Alias /MyWebSiteName" D:/ApacheNET/MyWebSiteName.com" <VirtualHost *:80> DocumentRoot "D:/ApacheNET/MyWebSiteName.com" ServerName www.MyWebSiteName.com ServerAlias MyWebSiteName.com AspNetMount / "D:/ApacheNET/MyWebSiteName.com" # Other directives here <Directory "D:/ApacheNET/MyWebSiteName.com"> Options FollowSymlinks ExecCGI AspNet All #AspNet Virtual Files Directory Order allow,deny Allow from all DirectoryIndex default.aspx index.aspx index.html #default the index page to .htm and .aspx </Directory> </VirtualHost> # For all virtual ASP.NET webs, we need the aspnet_client files # to serve the client-side helper scripts. AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/Windows /Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4" <Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles"> Options FollowSymlinks Order allow,deny Allow from all </Directory> </IfModule> 

Quelqu'un a-t-il réussi à exécuter Microsofts MVC2 (ou la première version de MVC) sur Apache avec le module mod_aspdotnet? Merci !

2 Solutions collect form web for “Configuration d'ASP.NET MVC2 sur Apache 2.2 à l'aide de mod_aspdotnet”

L'activation des applications MVC sur mod_aspdotnet est beaucoup plus simple que cela. Si vous ajoutez simplement

 SetHandler asp.net 

Dans votre section de répertoire afin de forcer toutes les requêtes à travers le module. Il se comporte comme un cartographie générique dans IIS. Comme cela va traiter toutes les demandes, vous voudrez faire une exclusion pour le contenu non-réseau en ajoutant une section d'emplacement comme celle-ci:

 <Location ~ "^/MyWebSiteName/Content/.*"> SetHandler none </Location> 

Lorsque votre répertoire de contenu contient tous vos fichiers d'image, css, etc. Vous pouvez également écrire la règle pour correspondre à une liste d'extensions de fichier, mais je trouve cela plus facile. L'avantage supplémentaire est que vous n'avez pas besoin de recoder vos applications. Un autre problème que vous pouvez rencontrer est que MVC2 ne peut pas avoir un codeur default.aspx pour traiter vos requêtes racines. Pour traiter l'utilisation mod_rewrite et ajouté:

  RewriteEngine On RewriteBase /MyWebSiteName/ RewriteRule ^$ Home [R=301] 

À ma configuration de répertoire qui oblige à rediriger la requête / au contrôleur Home.

Une réponse

Je lance XP Home avec Apache 2.2.10 avec NOSSL et MS SQL 2008 Express (Advanced). Si vous souhaitez savoir comment ASP.NET doit s'exécuter sur Apache, procédez d'abord. Ce que j'ai découvert sur MVC sur les serveurs Web provient de ( http://www.asp.net/learn/mvc/tutorial-08-cs.aspx ). (Je suis un nouvel utilisateur et je ne peux pas soumettre avec plus d'un lien hypertexte, je vais en figure). Je choisis l'option d'extension .mvc. Voici ma configuration:

 LoadModule aspdotnet_module "modules/mod_aspdotnet.so" AddHandler asp.net mvc asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo <IfModule aspdotnet_module> Alias /MyWebSite"D:/ApacheNET/MyWebSite.com" <VirtualHost *:80> DocumentRoot "D:/ApacheNET/MyWebSite.com" ServerName www.MyWebSite.com ServerAlias MyWebSite.com AspNetMount / "D:/ApacheNET/MyWebSite.com" # Other directives here <Directory "D:/ApacheNET/MyWebSite.com"> Options FollowSymlinks ExecCGI #AspNet Files Directories Virtual AspNet All Order allow,deny Allow from all DirectoryIndex index.html #default the index page to .htm and .aspx </Directory> </VirtualHost> 

Ajout de mvc à AddHandler ci-dessus. J'ai changé l'itinéraire par défaut dans global.aspx:

 routes.MapRoute( "HomeIndex", "default.mvc", new { controller = "Home", action = "Index" } ); routes.MapRoute( "Default", "{controller}.mvc/{action}/{id}", new { action = "Index", id = "" } ); 

Ensuite, j'ai fait un fichier index.html qui a redirigé le visiteur racine entrant vers default.mvc. C'est à peu près ça.

Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.