Asp.net mvc 3 asp.net mvc 3 iis 7.5 404错误
编辑 如果我使用的是VisualDevelopmentServer,那么它在我的开发机器上运行良好。 但是,如果我设置为使用本地IIS Web服务器(项目url设置为Asp.net mvc 3 asp.net mvc 3 iis 7.5 404错误,asp.net-mvc-3,iis-7.5,Asp.net Mvc 3,Iis 7.5,编辑 如果我使用的是VisualDevelopmentServer,那么它在我的开发机器上运行良好。 但是,如果我设置为使用本地IIS Web服务器(项目url设置为http://localhost/myapp)如果我遇到401错误,它就不起作用了 使用msdeploy将fine从visual studio 2010部署到IIS 7.5,其站点名为apps.mydomain.com/myapp。所以本质上我想浏览到,但当我这样做时,我得到404错误 我只在站点上启用了Windows身份验证,其
http://localhost/myapp
)如果我遇到401错误,它就不起作用了
使用msdeploy将fine从visual studio 2010部署到IIS 7.5,其站点名为apps.mydomain.com/myapp。所以本质上我想浏览到,但当我这样做时,我得到404错误
- 我只在站点上启用了Windows身份验证,其他所有功能都被禁用
- 我已经安装了修补程序
- 应用程序池.NET 4集成管道。我也尝试过经典管道,但不起作用
- 已执行%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet\u regiis.exe-ir仍不工作
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizeAttribute());
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
Web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.route" value="elmah" />
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false" />
</appSettings>
<system.web>
<customErrors mode="On" defaultRedirect="~/error">
<error statusCode="404" redirect="~/error/notfound"></error>
</customErrors>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Windows" />
<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>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="~/error/notfound" />
<remove statusCode="500" />
<error statusCode="500" responseMode="ExecuteURL" path="~/error" />
</httpErrors>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<connectionStrings>
</connectionStrings>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="Elmah.Sql" />
<security allowRemoteAccess="true" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
-->
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
</configuration>
-->
看起来您的绑定有问题
您还可以在DNS中查看apps.mydomain.com
另外,如果您不确定自己的路线,您可以使用这个很酷的小型库:如果可能,您应该远程访问相关服务器并在本地请求页面。如果没有其他问题,您应该会得到一个比404更有用的错误。您还可以检查应用程序池是否正在运行Classic或Integrated(需要集成)在站点的根目录中放置一个HTML文件-您可以在浏览器中看到吗?如果不是,则可能是DNS解析问题。域是否确实解析为服务器的IP地址?我在站点的根目录中删除了一个HTML文件,这可以正常工作。我应该补充一点,根网站中还有其他asp.net web表单应用程序可以正常工作。“@nZeus”我认为您在绑定问题上是对的。创建了一个新的dns条目myapp.mydomain.com(原始位置是apps.mydomain.com/myapp,但不起作用),我的mvc应用程序出现在这个url上。有什么原因吗?当你进入时会发生什么?您应该看到“IIS欢迎”页面或网站内容。如果您看到404,请在推荐行中运行“ping apps.mydomain.com”和“tracert apps.mydomain.com”。