我使用Visual Studio 2015开发了一个简单的ASP.NET Core应用程序,并在本地计算机上进行了测试。一切都按照预期运行。
将其上传到我的虚拟主机服务器(通过FTP)后,突然停止显示实际页面。
我的意思是我可以看到路由正常工作(因为我没有登录应用程序,我立即导航到/Auth/Login
(即使原始地址是/App/Index
,但是由于未知原因,我只能看到一个空白页面(当我检查页面时没有任何内容)。
提一下 - 由于我的网络服务器的工作方式和方式;如何管理文件夹结构,我不得不将 wwwroot 的所有实例重命名为 www_root ;但我已经做到了......而且它在我以前的应用程序中正常工作。
这里有什么问题?为什么我的观点没有正确地注入应用程序?
编辑1 - 更多信息
以下是我的身份验证方式:
在 Startup.cs
下设置 services.AddIdentity<IP_User, IdentityRole>(config =>
{
config.User.RequireUniqueEmail = true;
config.Password.RequiredLength = 5;
config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";
config.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents()
{
OnRedirectToLogin = ctx =>
{
if ((ctx.Request.Path.StartsWithSegments("/api"))
&& ctx.Response.StatusCode == (int)HttpStatusCode.OK)
{
ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
}
else
{
ctx.Response.Redirect(ctx.RedirectUri);
}
return Task.FromResult(0);
}
};
}).AddEntityFrameworkStores<ShoppingContext>();
并在AuthController下:
public class AuthController : Controller
{
private SignInManager<IP_User> _signInManager;
public AuthController(SignInManager<IP_User> signInManager)
{
_signInManager = signInManager;
}
// GET: /<controller>/
public IActionResult Login()
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "App");
}
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel vm, string ReturnUrl)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(vm.Username, vm.Password, true, false);
if (result.Succeeded)
return RedirectToAction("Index", "App");
else
ModelState.AddModelError("", "Username or Password incorrect.");
}
return View();
}
public async Task<IActionResult> Logout()
{
if (User.Identity.IsAuthenticated)
{
await _signInManager.SignOutAsync();
}
return RedirectToAction("Login", "Auth");
}
}
IP_User
只是一个继承的IdentityUser
答案 0 :(得分:1)
最后,我设法通过删除旧的Publish文件夹,删除发布配置文件并完全重新发布我的整个网站来解决问题。