试图让 Microsoft MVC2 网站在使用 mod_aspdotnet 模块的 Apache 2.2 Web 服务器(在 Windows 上运行)上运行。运行多个 ASP.NET 虚拟主机,尝试添加另一个。MVC2没有默认页面(就像 MVC 的第一个版本有例如 default.aspx)。我尝试了对配置的各种更改:注释掉“DirectoryIndex”,将其更改为“/”。将“ASPNET”设置为“虚拟”,不会加载第一页,总是得到:“403 Forbidden,您无权访问此服务器上的 /。”
以下来自我的 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>
有没有人使用 mod_aspdotnet 模块在 Apache 上成功运行 Microsoft 的 MVC2(或 MVC 的第一个版本)?谢谢 !
在 mod_aspdotnet 上启用 MVC 应用程序比这容易得多。如果您只是添加
到您的目录部分,以强制所有请求通过模块。它的行为就像 IIS 中的通配符映射。由于这将处理所有请求,因此您需要通过添加如下位置部分来排除非 .Net 内容:
您的内容目录包含所有图像文件、css 等。或者,您可以编写规则以匹配文件扩展名列表,但我发现这更容易。这样做的额外好处是您不必重新编码您的应用程序。您可能遇到的另一个问题是使用 MVC2,您可能没有 default.aspx 占位符来处理您的根请求。处理使用 mod_rewrite 并添加:
到我的目录配置,它强制将 / 请求重定向到 Home 控制器。
一个答案
我正在使用带有 NOSSL 和 MS SQL 2008 Express(高级)的 Apache 2.2.10 运行 XP Home。如果您想知道如何让 ASP.NET 在 Apache 上运行,请先执行此操作。我对 Web 服务器上的 MVC 的发现来自 ( http://www.asp.net/learn/mvc/tutorial-08-cs.aspx )。(我是新用户,不能提交多个超链接,请看图)我选择 .mvc 扩展选项。下面是我的配置:
在上面的 AddHandler 中添加了mvc 。我更改了 global.aspx 中的默认路由:
然后我创建了一个 index.html 文件,将传入的根访问者重定向到 default.mvc。就是这样。