ASP.NET应用程序无法启动-404

时间:2018-08-09 18:53:38

标签: c# asp.net

我在IIS上有一个简单的c#asp.net网站,其中包含:

Global.asax
Web.config
/bin

当我访问路线时,效果很好:

Mysite.com/api/test

我们将文件移动到了另一台IIS服务器,但无法访问路由。显示错误404。

静态文件已正确投放。

我们检查的事情:

AppPool版本为4.0,集成模式下的AppPool,处理程序映射 与旧服务器类似,IIS_IUSRS拥有对该文件夹的所有权限。

我缺少什么配置?

3 个答案:

答案 0 :(得分:0)

启动IIS之前需要检查的内容:

POOL权限
POOL框架版本
文件夹权限-托管应用程序的文件夹必须具有IIS_IUSRS用户的权限

检查后,您的应用程序应运行或显示另一条错误消息。

插入一些打印屏幕以查看错误。

答案 1 :(得分:0)

检查您的App_Start文件夹中是否存在 WebAPIConfig 类。它看起来应该类似于以下内容:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            var settings = config.Formatters.JsonFormatter.SerializerSettings;
            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            settings.Formatting = Formatting.Indented;
            settings.NullValueHandling = NullValueHandling.Include;

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

然后检查该类是否在您的 Global.asax 类中注册。应该有一个像这样的条目:

GlobalConfiguration.Configure(WebApiConfig.Register);

应在此行上方:

RouteConfig.RegisterRoutes(RouteTable.Routes);

答案 2 :(得分:0)

IIS上未安装asp.net之类的声音。

https://msdn.microsoft.com/en-us/library/k6h9cz8h.aspx

aspnet_regiis -i