我正在使用 Visual Studio 2010 RC 运行 Windows 7 Ultimate(64 位)。我最近决定让 VS 在 IIS 上运行/调试我的应用程序,而不是在它附带的开发服务器上。

但是,每次我尝试运行 MVC 应用程序时,都会收到以下错误:

HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。详细的

错误信息

模块目录列表模块

通知执行请求处理程序

处理程序静态文件错误

请求代码 0x00000000

网址 http://localhost:80/mySite/

物理路径C: myproject mySite

登录方式 匿名登录

匿名用户

我放置了一个 default.aspx 文件在目录中,我收到以下错误:

HTTP错误500.21-内部服务器错误处理程序“ pageHandlerFactory -Contegrated”在其模块列表中具有糟糕的模块“ ManageDpipelineHandler”

我是否还忘记采取任何其他步骤来使其正常工作?

笔记:我在安装VS 2010 RC后安装了IIS 7.5。我使用了 Visual Studio 2010 中 MVC 项目“属性”中“Web”选项卡下的内置“创建虚拟目录”按钮。我确保该应用程序正在使用 ASP.NET 4 应用程序池。

以下是我已安装的 IIS 功能。

alt text

有帮助吗?

解决方案

ASP.NET 4未在IIS注册。不得不在命令行运行下面的命令/运行

32位(86)的Windows

  

%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 \ ASPNET_REGIIS.EXE -ir

64位(64位)的Windows

  

%WINDIR%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASPNET_REGIIS.EXE -ir

从大卫默多克的评论请注意:

  

这.NET版本已改变   因为这个答案被张贴。校验   该框架的版本是在   在%windir%\ Microsoft.NET \ Framework64   目录并更改命令   因此在运行前(这是   目前v4.0.30319)

其他提示

还有一点要确保你有在你的web.config以下设置:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

请确保您有在你的web.config以下设置:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

<强>更好的解决方案:

尽管上述解决方案的工作绝对没问题,因为它运行时,它可能会导致其他问题,您所有的每个请求(即使在.JPG的每个请求注册HTTP模块。 GIF的.css的.html .PDF等),很明显是浪费资源。代替

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

确认先决条件属性为空意味着它会在所有请求运行。 [读取更多]( HTTP://www.britishdeveloper。 co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html 时, “读出的原始柱”)

另一个原因,有人可能会得到这个错误,如果该文件的 Global.asax中是不是在根文件夹中了。

我也收到此错误,并发现“HTTP重定向”并没有在Windows Server开启。本博客文章点了这一点还有:的 http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx

甜耶稣。我尝试了所有上面的东西(但发现我的设置相同)。如果您有问题的又一解决方案:

http://support.microsoft.com/kb/980368

尝试安装此KB为您的系统。如果您看到404这可能是因为你没有这个更新 - !,只是没有得到发现ISAPI模块,有没有很多可以做,如果没有这个

此外u能切换的程序池以<强>集成模式。日Thnx迈克尔·比安奇( https://stackoverflow.com/a/7956546/1143515 ),我只是想强调的是,

有关我上的天青服务器2012 R2 IIS 8.5 VM与一个Asp.Net MVC 5的应用程式(仓部署MVC 5)我不得不做从CMD提示升高以下,即使我有4.5已经安装:

dism /online /enable-feature /featurename:IIS-ASPNET45

来源: http://support.microsoft.com/kb/2736284

我还蛮力安装所有IIS具有以下的PowerShell特性:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

来源: HTTP:/ /www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

现在我的应用程序的工作。

我们不得不转移到新服务器的MVC应用程序。 .NET 4和MVC 3安装,但我们仍然有“错误403.14“。在这种情况下,这意味着IIS不明白,它处理的是一个MVC应用程序,它一直在寻找的默认页。

的解决方案是简单的:HTTP重定向未安装在服务器上

服务器管理 - 角色 - Web服务器(IIS) - 角色服务 - HTTP重定向:未安装。安装,问题就解决了。

此外,如果您的应用程序已预编译,你应该有

PrecompiledApp.config

在您的应用程序的根目录下,否则你可以得到HTTP Error 403.14为好。

另一种可能的解决办法,如果你走动的Global.asax的,请确认标记指向正确的MvcApplication类。希望这将节省别人的未来。

我曾用WebDeploy IIS扩展导入我的网站从IIS6到IIS7.5,所以所有的IIS设置是,正是因为他们已经在生产环境中。尝试所有在这里提供的解决方案,其中没有工作对我来说,我只是不得不改变应用程序池设置的网站,从古典到集成。

我突然遇到了同样的问题404.14。最后,问题已经得到了固定,取消选中“预编译同时发布了”在发布配置设置。

我改变了我的默认路由在一个点从:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

要:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

这给了我你的错误。很高兴有人提到路由,因为我可能会一直在这永远的。

在我的情况下ASP.NET 4.5未安装在服务器上,从而安装ASP.NET 4.5固定的问题。

您可以通过运行CMD为管理解决这个错误 比 “在这里输入的图像描述”

执行相同图像窗户32位

只是使在64位改变为framework64代替框架仅 不是去IIS和刷新页面结果 如果你仍然得到了在应用程序池中的某些错误改变选择项

我还有另一个问题导致了这个问题。

  • 我已确保我的应用程序池在集成模式下运行 .net 4
  • 我已经运行了 aspnet_regiis.exe -i
  • 我已检查运行我的应用程序池的帐户的文件夹权限是否设置正确

这些方法都不起作用。事实证明,在 system.webserver > 模块下的 web.config 中,我有以下内容:

<remove name="WindowsAuthentication" />

显然,这删除了 ​​Windows 身份验证模块,这似乎以某种方式使一切都失去了平衡。

我希望这对某人有帮助,因为这花了我一个晚上的时间!

用户界面是在Windows Server的新版本有点不同。在这里你必须启用ASP.Net为了得到它的工作IIS

“修复IIS&Asp.net”

添加针对此问题的另一解决方案。

在我的Global.asax.cs文件我已经从使用以下由MVC管道被消耗禁用尝试PHP文件:

routes.IgnoreRoute( "{*php}" );

我以前曾在MVC2项目做完这些,它工作得很好,但这样做在我的MVC 3应用程序引起的问题,上述报道。

还有一个原因,这可能发生 - 你RouteConfig.csWebApiConfig.cs无效

在我的情况下,我不得不定义为这样的路线(注意括号代替大括号):

...
routeTemplate: "api/(something}"
...

请注意为Windows 8用户需要添加/删除Windows组件,并删除.NET重启的版本,然后才能与IIS注册它重新安装。我相信这种情况,如果你得到.NET 4.5,从Visual Studio和安装IIS之后。

奇怪,因为它看起来可能, 重新安装IIS 是什么工作对我来说,用下面的命令运行在.NET版本的文件夹中:

aspnet_regiis.exe /i

“在这里输入的图像描述”

当我第一运行此命令,我开始获取HTTP错误403.14。但是,一旦我再次拼命地跑的命令,它解决了这个问题。

观测值:还有一件事我也做了删除HTTP重定向从服务器在服务器管理画面reiinstalling IIS之前功能。也许这也有解决问题的影响,但我不知道。所以,如果重新安装IIS仍不能正常工作,请尝试删除HTTP重定向,然后再试一次。希望它可以为你工作了。

要解决这个问题,而不必诉诸于32位模式,你将不得不更新源代码本项目

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

我提出这个问题,因为在IT云CodePlex项目的讨论板的讨论。

http://itcloud.codeplex.com/discussions/262000

这工作对我来说,它可能是另一个有用的。

也许所需的所有组分不存在或/和未全部正确注册。为了解决这个问题,尝试取消所有选项控制面板里面 - >打开或关闭Windows功能 - > Internet信息服务 - >万维网服务 - >应用程序开发功能,取消所有选项,并重新检查所有然后重置IIS和检查,如果问题得到解决。

“在这里输入的图像描述”

如果您在 Windows 8 或 Server 2012 上运行 IIS 8.5,您可能会发现在虚拟目录中运行 mvc 4/5 (.net 4.5) 不起作用。如果您在主机文件中创建一个本地主机条目以指向回本地计算机,然后将一个新的本地 IIS 网站指向该文件夹(具有匹配的主机标头条目),您会发现它可以正常工作。

我创建了一个新的命名空间(并因此夹)相同的控制器的路由(例如MvcApp/Test/SomeClasses.csMvcApp/Controllers/TestController.cs)。这也导致了403.14!

对于我来说,解决办法是添加NuGet包Microsoft.AspNet.WebPages(再加上它的剃刀和基础设施的依赖)到我的Web项目。

基础设施已经被强制地,因为它不加入作为在第一基准重新安装。

在我的情况下,.NET CRL版本的应用程序池prppertires设置为无托管代码(不知道为什么)。 将其设置为.NET CRL版v4.0.30319解决了这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top