【问题标题】:ASP.NET Core publishing to IIS Blank Loading ScreenASP.NET Core 发布到 IIS 空白加载屏幕
【发布时间】:2016-09-22 12:40:45
【问题描述】:

我已将 asp.net core 1.0 应用程序作为新网站发布到 IIS 8.5 版。 我只能看到登录页面。登录成功后,得到空白页面。也许路由不能正常工作。我在我的开发机器上运行这个应用程序没有任何问题。请参阅我的配置和启动

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        app.UseApplicationInsightsRequestTelemetry();
        app.UseSession();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseApplicationInsightsExceptionTelemetry();

        app.UseStaticFiles();
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Login}/{action=Login}/{id?}");
        });
    }

<system.webServer>
<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

登录控制器

public class LoginController : Controller
{
    private StaunchContext _context;
    public LoginController(StaunchContext context)
    {
        _context = context;
    }

    // GET: /<controller>/
    public IActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public async Task<IActionResult> Login(UserDetails users)
    {
        if (ModelState.IsValid)
        {
            var exist =await _context.UserDetails.SingleOrDefaultAsync(x => x.Email == users.Email && x.Password == users.Password);
            if ((exist!=null)&& exist.Id > 0)
            {
                TempData["Users"] = JsonConvert.SerializeObject(exist);
                HttpContext.Session.SetString("Email", exist.Email);
                return RedirectToActionPermanent("Index", "Search");
            }
            else
            {
                ModelState.AddModelError("loginerror", "Invalid username or password");
            }
        }
        return View(users);
    }

【问题讨论】:

  • 浏览器开发者工具是否有网络错误? (按 F12 -> 网络选项卡)
  • 能否添加 SearchController 的代码?
  • 您是否在检查用户是否在 SearchController 中进行了身份验证?因为 Login post 方法中没有任何内容表明用户已通过身份验证。
  • 是的,Petre 的评论是正确的。从浏览器的开发者控制台向我们展示您的网络或 JavaScript 错误

标签: c# asp.net asp.net-core


【解决方案1】:

我相信您的默认路由是登录页面。如果你改变它,那能解决问题吗?

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Get}/{id?}");
});

(确保将 Home & Get 替换为您的默认页面)

【讨论】:

  • 它没有帮助我。我的控制器是“LoginController”,动作是“Login”
  • 但是您的应用程序主页的控制器是什么?
  • 成功登录返回 RedirectToActionPermanent("Index", "Search");主页-SearchController 和 action 是 Index
  • 登录成功后,您在 URL 中看到正确的路径了吗?如果是这样,我猜这个问题更可能是 SearchController 和它的视图而不是登录问题。
  • 不,即使在成功登录后,它仍然显示登陆 URL。
猜你喜欢
  • 2017-02-03
  • 2021-04-19
  • 2021-01-30
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多