IIS 配置 - ASP.NET MVC 对所有请求返回默认文档

2024-04-06

好的,我在 VS 2013 中构建了一个 MVC Web 应用程序。我已经能够通过本地计算机上的 IIS 成功托管该应用程序,没有任何问题。但是我现在需要在远程计算机上托管。我遵循了与在本地计算机上相同的步骤,但我不断收到错误。

当我尝试浏览 Web 应用程序时,出现错误 HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。不过,我已经创建了一个默认文档,因为此错误的详细信息告诉我,现在每次我尝试访问应用程序 (localhost/MyWebApp) 时,它都会转到 default.html。

但是,当我指定要转到特定控制器(例如 localhost/MyWebApp/Home)时,我收到 404 错误(HTTP 错误 404.0 - 未找到) 您正在查找的资源已被删除、更名或暂时不可用。)

我当前尝试托管的计算机由于各种原因没有安装 Visual Studio,但我已经在其上安装了 ASP.NET MVC 3 和 .NET 4.5 Framework。远程计算机 IIS 上的默认网站也已经成功运行了 classic.net 应用程序。

我的想法是:

1 - 我缺少托管 asp.net mvc 应用程序所需的一些先决条件(可能是与 Visual Studio 一起安装的东西)

Or

2 - IIS 中的某些内容配置不正确。

欢迎任何建议,因为几个小时的研究没有找到答案,而且我已经用尽了 IIS 的知识

Edit

已经弄清楚并将其标记为下面的答案。


runAllManagedModulesForAllRequests不应该用于此类事情。
See here http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html有关于此的一些详细信息。

最有可能的是,您的网站只缺少一个名为UrlRoutingModule。在安装过程中,MVC nugets 将其安装到项目中。有一些错误,但已修复 https://github.com/maartenba/MvcSiteMapProvider/issues/289.

默认情况下,ASP 通过扩展名选择内容处理程序,例如 URL 中存在的 ASPX 或 JPG。由于在 MVC 中通常没有这样的东西,因此 MVC 需要这个模块来正确执行路由。

问题是,路由似乎不适用于您的情况。

首先,确保该模块存在。打开 IIS 管理控制台,转到您的页面,打开模块部分并检查模块中是否列出了 UrlRoutingModule。如果没有,请尝试重新安装 MVC 套件。或者像上面的文章中介绍的那样手动将其添加到 webconfig 中。

如果该模块存在,请检查站点的结构到底如何。

在 IIS 上,“站点”和“应用程序”之间略有区别。您可以将项目部署为整个站点,或者部署为某个站点中包含的应用程序。

您有可能将项目部署为应用程序,并且该模块在该应用程序的范围内“打开”,但不是在整个站点上“打开”。如果是这种情况,您可以在实际站点的根目录中添加简单的额外 webconfig:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <system.webServer>
    <modules>
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    </modules>
  </system.webServer>
</configuration>

这将在整个站点上启用 MVC 路由,并允许http://example.com/myapplication/ http://example.com/myapplication/尽管没有设置任何“默认文档”并且 URL 中没有任何文件扩展名,但仍能正确路由。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 配置 - ASP.NET MVC 对所有请求返回默认文档 的相关文章

  • System.Web.HttpContext 无法识别

    我有一个带有 C Web 应用程序的 ASP NET 我创建的类之一需要使用 HttpContext 根据http msdn microsoft com en us library system web httpcontext v vs 9
  • .NET Core 中 appsettings.json 设置的继承

    我正在努力实现这样的目标 BaseSettings 具有所有其他部分通用的设置 Child1Settings 拥有所有 BaseSettings Child1Settings Child2Settings 拥有所有 BaseSettings
  • 临时数据持久化

    我一直在与TempData最近面临一个令人困惑的案例 假设TempData在以下操作中创建 public ActionResult MyAction1 myTempData TempData myTempData 预计将在以下 Action
  • 为什么微软在 .net 3.5 SP1 之前就废弃了 JavaScriptSerializer,而在 .net 3.5 SP1 之后又重新启用了 JavaScriptSerializer?

    JavaScriptSerializer 在 net 3 5 SP1 之后并没有过时 我应该使用 JavaScriptSerializer 还是之前推荐的 DataContractJsonSerializer 还有为什么它被淘汰了 我很乐意
  • 如果元素隐藏则忽略 .NET 验证器(显示:无)

    我们经常在使用 javascript css 隐藏的元素 即 display none 上使用 NET 验证器时遇到问题 例如 可能有语法错误 但不用担心
  • 在 WCF 服务上启用 CORS。获取 HTTP 405:不允许的方法

    我正在尝试在 WCF 服务上启用 CORS 当我尝试从客户端发送请求时 该请求是使用OPTIONS动词 我总是得到一个HTTP 405 Method not allowed error 如果我尝试使用 Fiddler 并使用以下命令创建相同
  • NHibernate - 无法延迟初始化角色集合

    我有以下看似简单的场景 但我对 NHibernate 仍然很陌生 当尝试在我的控制器上加载以下模型以进行编辑操作时 控制器的编辑操作 public ActionResult Edit Guid id return View reposito
  • 重命名 ASP.NET MVC 项目时出错

    我复制了以前的项目并将其重命名 一旦我成功重命名了所有名称空间并且它构建正确 当我运行该应用程序时 出现以下错误 The following errors occurred while attempting to load the app
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 需要一个好的 ASP.NET 菜单

    我正在寻找一个可以在 ASP NET 中使用的好菜单 我目前使用的是asp菜单 我需要 它可以在 IE 6 7 8 Firefox 和 Safari 中运行 我还需要它不要给页面客户端增加大量开销 我需要能够从数据库加载它 编写您自己的服务
  • Blazor WeatherForecast 示例如何工作?

    Blazor 的 Hello World 项目模板包括天气预报示例 除了计数器增量示例之外 我用这个来看看幕后发生了什么 我似乎无法弄清楚 基本上 如果我注释掉获取天气 json 数据的代码行 那么我会无限期地看到 正在加载 到目前为止是有
  • 更新我的模型然后重新评估 IsValid?

    我将一些值传递给我的控制器操作 一切都绑定得很好 根据设计 表单 POST 中会缺少两个属性 然后我设置了缺失的值 但随后我想验证模型 但它仍然显示为 false 因为 ModelState 似乎没有跟上我的更改 HttpPost Auth
  • ASP MVC 3 RequireHttps 属性将所有链接更改为 https

    我有一个 ASP MVC 3 网站 其中包含反馈表并且应该需要 SSL 现在 我在名为 ContactUs 的控制器内有一个名为 反馈 的操作 负责查看和处理反馈 当我使用 RequireHttps 该操作上的属性 效果很好 并将 URL
  • Asp.Net Identity - 不区分大小写的电子邮件和用户名

    有没有办法让 Asp Net Identity 的电子邮件地址和用户名不区分大小写 目前 如果我调用 FindByEmailAsync email 只有在电子邮件地址完全按照键入的方式存储时 区分大小写 它才会起作用 您可以更改用户的注册方
  • 无法加载文件或程序集“System.Web.Razor”或其依赖项之一

    我在我的网站 Web 应用程序 中使用了 Umbraco 4 11 6 我的网站在 localhost 中工作 通过 Visual Studio 2012 和 IIS v7 进行测试 但是当我从互联网空间运行它时 出现错误 错误是 无法加载
  • 我可以更改 FormsAuthentication cookie 名称吗?

    我可以更改 FormsAuthentication cookie 名称吗 如果是 如何 我遇到的问题是 当我在同一个域中部署两个 Web 应用程序时 当任何人登录时 第二个应用程序将自动注销 因为它们使用相同的身份验证 cookie 名称
  • 在 MVC 控制器内打开 websocket 通道

    有没有人有在 MVC 控制器内打开 websocket 连接的良好经验 技术栈 ASPNET Core 1 0 RC1 MVC dnx46 System Net WebSockets 为什么使用 MVC 而不是中间件 为了整体一致性 路由
  • App_offline.htm、CSS、图像和 aspnet_isapi.dll

    因此 我正在开发的网站正在使用 urlrewriting 与 aspnet isapi dll 配合 所有内容都映射到它 我放置了 app offline htm 文件 所有文本均显示 但是 CSS 或图像未提供 我猜测由于通配符映射而不是
  • 重叠的回收和Application_Start

    我有一个使用 AppFabric 进行分布式缓存的 asp net Web 应用程序 在 Application Start 上 我初始化与 AppFabric 的连接 这通常需要几毫秒 这是完全可以接受的 有时可能需要长达30秒连接 在回

随机推荐

  • 如何使用 https 运行 Vue.js 开发服务?

    我正在使用 Vue cli 使用 webpack 模板创建 vue 项目 如何在开发中使用 https 运行它 npm run dev 在最新的vuejs 截至2018年5月7日 中 需要在项目根目录下添加一个 vue config js
  • 为什么我的 Express 路由器中间件没有定义 req.route?

    我正在尝试使用路由器中间件来获取以下值请求路由 https expressjs com en api html req route 我有一些像这样的简单代码 服务器 js import api from api app use api ap
  • webView:didFailLoadWithError -1004: 在 Phonegap ios 中连接 google plus 时无法连接到服务器

    在获取配置文件数据之前接受 google plus 身份验证时 我收到 webView didFailLoadWithError 1004 无法连接到服务器 错误 这些代码之前可以正常工作 现在我面临这些错误 不知道为什么我无法连接 请帮助
  • 使用鼠标光标捕获屏幕截图

    我使用以下代码在 Windows 上获取屏幕截图 hdcMem CreateCompatibleDC hdc int cx GetDeviceCaps hdc HORZRES int cy GetDeviceCaps hdc VERTRES
  • 正确的原型继承

    所以我真的查遍了互联网 发现了许多在 javascript 中设置原型继承的不同方法 其中一些使用call 其中一些使用以下语法 var rabbit prototype new Animal 有些在更改原型后更改构造函数 有些则不更改 有
  • vim :AnsiEsc - 如何默认打开它们?

    我有带有彩色日志条目的日志文件 假设扩展名为 smt2 其中颜色由 ansi 转义码定义 我安装了vim插件基于AnsiEsc vim http www vim org scripts script php script id 302 现在
  • awk 解析文件名并将结果添加到每行末尾

    我有许多名称相似的文件 例如 DWH Export AUSTA 20120701 20120731 v1 1 csv 397 dat 2012 10 02 04 01 46 out DWH Export AUSTA 20120701 201
  • 人类友好的二进制编码

    不久前 我发现一个网站描述了一种对人类友好的二进制到文本编码 例如 在输入 用于解码 时 它接受 0 o 和 O 全部作为相同的值 因为人们往往很容易混合这些字符 不幸的是我不记得它是怎么叫的 编辑 这就是我正在寻找的 其他Base32 的
  • retq 和 ret 有什么区别?

    让我们考虑以下程序 它计算参数的无符号平方 global foo text foo mov rdi rax mul rdi ret 这是正确编译的as 但反汇编为 0000000000000000
  • 如何设置iPhone振动时长?

    我正在使用 AudioServicesPlaySystemSound 来调用振动函数 AudioServicesPlaySystemSound kSystemSoundID Vibrate 有什么办法可以设置振动的持续时间吗 我知道默认持续
  • ASP .NET 5 MVC 6 Identity 3 角色声明组 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在寻找一种解决方案 以在带有 Identity 3 的 ASP NET 5 MVC 6 中使用高级角色 组权限管理 我启动了一
  • Spring MVC 返回自定义 HTTP 状态代码(无错误)

    在 Spring MVC RequestMapping 注释中 我返回 JSP 页面名称作为结果 这将返回 HTTP 状态代码 200 OK 如何将此状态代码更改为 201 创建之类的内容 ResponseStatus 不起作用 另外 Ht
  • JPA:如何对实体中的 Set 字段进行排序?

    我正在使用 Spring 3 2 11 RELEASE Hibernate 4 3 6 Final 和 JPA 2 1 我有以下具有以下字段的实体 Entity Table name user public class User imple
  • 如何在 Spring MVC 中将正确的 JSON 传递给控制器​​?

    我不明白为什么在将 POST 请求传递给时会收到 HTTP 415http localhost 8080 company 我在 POST 请求中的 JSON id 7 name IBM 这是我在控制器中的方法 Controller Requ
  • 为什么在 swift 中创建 String 时会出现内存泄漏?

    泄漏是一个根漏 在此图像中 在同一行上发生了多次 但下面还有另一个称为单次 也会产生泄漏 这是调用堆栈after调用前面提到的代码行 这是 Instruments 定位泄漏的类 class Item var id String var na
  • 为什么我的 schema.ddl 在 hibernate3-maven-plugin 之后是空的?

    这是项目的目录结构 使用maven2 pom xml src main java Abc java resources hibernate cfg xml database properties META INF persistence x
  • 公共属性和私有成员 C#

    只使用公共属性而不是使用公共属性来访问私有变量有什么好处 例如 public int iMyInt get set 代替 private int myint public int iMyInt get return myint set my
  • GET 或 POST 哪个比另一个更安全?

    当比较 HTTP GET 和 HTTP POST 时 从安全角度来看有什么区别 其中一种选择本质上比另一种更安全吗 如果是这样 为什么 我意识到 POST 不会公开 URL 上的信息 但是这有什么真正的价值 还是只是通过模糊来实现安全 当考
  • 即使对于小型 DbContext,EF 启动时间也为 7 秒

    我正在尝试减少基于 EF 的应用程序的启动时间 但我发现即使对于单实体上下文 我也无法将初始读取所需的时间减少到 7 秒以下 特别奇怪的是 这次不是特定于上下文类型的 谁能解释一下导致这些缓慢时间的原因和 或我如何才能让事情运行得更快 这是
  • IIS 配置 - ASP.NET MVC 对所有请求返回默认文档

    好的 我在 VS 2013 中构建了一个 MVC Web 应用程序 我已经能够通过本地计算机上的 IIS 成功托管该应用程序 没有任何问题 但是我现在需要在远程计算机上托管 我遵循了与在本地计算机上相同的步骤 但我不断收到错误 当我尝试浏览