.net-4.0 - iis离线安装




IIS 7.5上的ASP.NET MVC (19)

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

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

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

错误信息

Module DirectoryListingModule

通知ExecuteRequestHandler

处理程序StaticFile错误

代码0x00000000请求

URL http:// localhost:80 / mySite /

物理路径C:\ myProject \ mySite \

登录方法匿名登录

用户匿名

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

HTTP错误500.21 - 内部服务器错误处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误的模块“ManagedPipelineHandler”

有没有其他的步骤,我忘了采取这项工作?

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

以下是IIS的安装功能。


ASP.NET 4未在IIS中注册。 必须在命令行/运行中运行以下命令

32位(x86)Windows

%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64位(x64)Windows

%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

David Murdoch的评论注释:

自本答案发布以来.net版本已发生变化。 检查框架的哪个版本位于%windir%\ Microsoft.NET \ Framework64目录中,并在运行之前相应地更改命令(它当前为v4.0.30319)


为了解决这个问题,而不必诉诸于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云代码复制品项目讨论板上讨论过这个问题。

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


为此问题添加另一个解决方案。

在我的Global.asax.cs文件中,我禁用了尝试使用以下内容的MVC管道使用的PHP文件:

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

我之前在MVC2项目中完成了这些工作,并且它运行良好,但在我的MVC 3应用程序中执行此操作会导致上述问题。


你也可以将AppPool切换到集成模式。 Thnx到Michael Bianchi( https://.com/a/7956546/1143515 ),我只想强调一下。


另外如果你的应用程序是预编译的,你应该有

PrecompiledApp.config

在您的应用的根文件夹中,否则您也可能会收到HTTP Error 403.14


在我的情况下,ASP.NET 4.5没有安装在服务器上,所以安装ASP.NET 4.5修复了这个问题。


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


对于使用Asp.Net MVC 5应用程序(bin部署MVC 5)的Azure Server 2012 R2 IIS 8.5虚拟机,我必须从提升的cmd提示符执行以下操作,即使我已经安装了4.5:

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

来源: http://support.microsoft.com/kb/2736284 : 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 : http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

现在我的应用正在工作。


您可以通过以admin身份运行cmd来解决此错误

与Windows 32位的图片一样

只需将64位的更改作为framework64而不是框架进行即可。请转至iis并刷新网站
如果你仍然在应用程序池中发生了一些错误


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

解决方案很简单:服务器上未安装HTTP重定向。

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


我改变了我的默认路线:

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" }

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


我曾使用WebDeploy IIS Extension将我的网站从IIS6导入到IIS7.5,因此所有IIS设置都与生产环境中的设置完全相同。 在尝试了这里提供的所有解决方案之后,其中没有一个为我工作,我只需将该网站的App Pool设置从Classic更改为Integrated。



我遇到了另一个导致这个问题的问题。

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

这些都不起作用。 原来,在我的web.config下system.webserver>模块我有以下几点:

<remove name="WindowsAuthentication" />

很明显,这删除了Windows身份验证模块,它似乎以某种方式将所有东西都关闭了。

我希望这可以帮助某人,因为这花了我一个晚上的大部分时间!


用户界面在Windows Server的新版本中有点不同。 这里是你必须启用ASP.Net才能使它在IIS上工作的地方


看起来很奇怪, 重新安装IIS对我来说很有效,以下命令从.net版本文件夹中运行:

aspnet_regiis.exe /i

当我第一次运行这个命令时,我开始得到HTTP错误403.14。 但是一旦我再次运行命令,它就解决了这个问题。

Obs :我也做过的另一件事是在重新安装IIS之前,从服务器管理屏幕中的服务器功能中删除HTTP重定向。 也许这对解决问题也有影响,但我不确定。 所以,如果重新安装IIS仍然不起作用,请尝试删除HTTP重定向并重试。 希望它也可能适用于你。


请注意,对于Windows 8用户,您需要添加/删除Windows组件并删除.net reboot的版本,然后重新安装以便将其注册到IIS。 我认为这会发生,如果你从Visual Studio中获得.net 4.5,然后安装IIS。


还有一件事要确保你有你的web.config中的以下设置:

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

这对我有用,对另一个可能有用。

也许所有需要的组件都不存在或/并非所有组件都已正确注册。 为了解决此问题,请尝试取消选中控制面板内的所有选项 - >打开或关闭Windows功能 - > Internet信息服务 - >万维网服务 - >应用程序开发功能,取消选中所有选项并重新检查所有选项,然后重置IIS检查问题是否解决。





iis-7.5