ASP.Net MVC 3/4托管IIS 7.5默认处理程序映射(ASP.Net MVC 3/4 H

2019-07-31 00:49发布

什么是正确的默认处理程序映射为ASP.Net,ASP.Net MVC和WCF服务托管在IIS的Windows 7 7.5框架4.0(PRO)?

是谁安装ASP.Net MVC团队的8个开发者的3/4仅1个开发者可以得到一个基本的ASP.Net MVC 3 Internet应用的默认Web站点下工作,在IIS 7.5在不改变处理程序映射,没有团队可以得到一个第二个网站的同一站点与位于根网站的子目录的站点sirectory工作。 的Inetpub / wwwroot文件/网站

下面有三个IIS 7.5中的设置都是不同的,并没有被开发商改变了处理器映射。

什么是定义所需的设置为默认值,并确保所有工作站都采用相同的配置,无需在网站Web.Config文件设置它们的最好方法?

Answer 1:

我成功地部署MVC 4到我的本地IIS 7.5(Windows 7)中。 这个解决我的问题(如提到这里 )

(对于x64系统)

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

(或者,如果在32位系统)

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

另外,我改变了默认应用使用V4集成(从V2-经典),转换后的网站,应用程序,并且必须使用默认应用中的应用。

这里是我的完整的Web.config。 它包括处理程序。

<?xml version="1.0" encoding="utf-8"?>

<compilation targetFramework="4.0" />

<pages>
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />
  </namespaces>
</pages>

<modules runAllManagedModulesForAllRequests="true" />

<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>



Answer 2:

假设您的默认网站已被配置为在IIS中的应用程序,这个问题的最可能的原因是有运行经典的管道,而不是综合管线的应用程序池。 在所有我们已经部署到Azure中的MVC应用程序,本地IIS服务器和开发机器,我们还没有碰到处理程序映射,除非有欺骗 IIS 6到托管的MVC的网站。

要检查应用程序池的管道:

  1. 打开IIS管理器

  2. 右键单击默认Web站点,并选择高级设置。 这将打开一个窗口

  3. 注意应用程序池的名称。 现在,关闭这个窗口,然后点击应用程序池在IIS管理器中左侧菜单上

  4. 如果托管管道模式未设置为集成(如正在读经典),然后用鼠标右键单击该应用程序池,然后选择基本设置。 在这里,您可以更改管道类型。 选择集成。

5,应用程序池,应立即重新启动,但你可以选择重新启动或手动IIS以确保您的更改已影响。

注意 -如果您正在运行IIS 6, 这里是一个链接 ,描述了如何调整处理器映射,使IIS 6可以运行MVC的网站。

附录 -如果你已经与处理程序映射出碴,取决于什么已经改变,你可能会想尝试这种在一个干净的安装IIS。 目前尚不清楚是什么处理器已错误地配置为您的团队试图使一个MVC的部署工作。



文章来源: ASP.Net MVC 3/4 Hosted on IIS 7.5 Default Handler Mappings