AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 132846
Accepted
flascuba
flascuba
Asked: 2010-04-16 11:11:12 +0800 CST2010-04-16 11:11:12 +0800 CST 2010-04-16 11:11:12 +0800 CST

使用 mod_aspdotnet 在 Apache 2.2 上配置 ASP.NET MVC2

  • 772

试图让 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 的第一个版本)?谢谢 !

apache-2.2 asp.net configuration mvc
  • 2 2 个回答
  • 9276 Views

2 个回答

  • Voted
  1. Best Answer
    BigWetDog
    2010-05-09T11:38:24+08:002010-05-09T11:38:24+08:00

    在 mod_aspdotnet 上启用 MVC 应用程序比这容易得多。如果您只是添加

    SetHandler asp.net
    

    到您的目录部分,以强制所有请求通过模块。它的行为就像 IIS 中的通配符映射。由于这将处理所有请求,因此您需要通过添加如下位置部分来排除非 .Net 内容:

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

    您的内容目录包含所有图像文件、css 等。或者,您可以编写规则以匹配文件扩展名列表,但我发现这更容易。这样做的额外好处是您不必重新编码您的应用程序。您可能遇到的另一个问题是使用 MVC2,您可能没有 default.aspx 占位符来处理您的根请求。处理使用 mod_rewrite 并添加:

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

    到我的目录配置,它强制将 / 请求重定向到 Home 控制器。

    • 2
  2. flascuba
    2010-04-23T10:37:03+08:002010-04-23T10:37:03+08:00

    一个答案

    我正在使用带有 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 扩展选项。下面是我的配置:

    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>
    

    在上面的 AddHandler 中添加了mvc 。我更改了 global.aspx 中的默认路由:

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

    然后我创建了一个 index.html 文件,将传入的根访问者重定向到 default.mvc。就是这样。

    • 0

相关问题

  • 阿帕奇的替代品

  • 我必须在我的服务器上配置什么来提高默认安全性?

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve