【问题标题】:part of code running ok on localhost but error on server(iis)部分代码在本地主机上运行正常,但在服务器(iis)上出错
【发布时间】:2019-11-05 05:51:02
【问题描述】:

我的登录方法在 localhost 上运行正常,但是当我在服务器上发布时,得到 ArgumentNullException 错误

mynamespase.Controllers.d__11.MoveNext() 在 E:\mylocaldirectory\myassembly\Controllers\M_AccountController.cs:179

奇怪的是为什么错误会在服务器上显示我的本地地址,为什么我的代码在 localhost 上运行正常,但在服务器上却出现错误,代码相同

实际上,我真正的问题是这一行 "E:\mylocaldirectory\myassembly\Controllers\M_AccountController.cs:179" [这是我的错误图片][ https://i.stack.imgur.com/IUBTP.jpg]

[HttpPost]
        public virtual async Task<ActionResult> Check_Code_4_Login(string code, string phoneNumber, string returnUrl)
        {
            var baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority;

            var dtNow = DateTime.Now;
            var _code = Convert.ToInt32(code);

            var userActiveCode = await _userActiveCodeService
                .FindFirstAsync(p =>
                    p.PhoneNumber == phoneNumber &&
                    p.ActiveCode == _code &&
                    p.ActiveCodeExpireDate > dtNow &&
                    p.Used == false &&
                    p.Enabled);

            if (userActiveCode == null)
            {
                TempData["Error"] = "Code Incorrect";
                return RedirectToAction(nameof(PostedLogin),new {phoneNumber=phoneNumber, reagentCode="",returnUrl="" });
            }

            var user = await _userManager.FindByPhoneNumberAsync(userActiveCode.PhoneNumber);
            if (user == null)
            {
                    var _user = new User
                    {
                        UserName = phoneNumber,
                        PhoneNumber = phoneNumber,
                        RegisterDate = dtNow
                    };
                    var res = await _userManager.CreateAsync(_user);

                    if (res == IdentityResult.Success)
                    {
                        user = _user;

                        await _userManager.AddToRoleAsync(user.Id, "Customer");
                    }
                    else
                    {
                        //todo Error
                        throw new Exception("Registeration Error");
                    }

            }

            await _signInManager.SignInAsync(user, true, true);

            var userIdentity = await _userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);


            return Redirect(returnUrl != null ? returnUrl : baseUrl);
        }```

I expect the output of the login method to be login user on the server or have an error on local, but the actual output is login user on local and have an error on server


【问题讨论】:

  • 是否从 Visual Studio 发布了应用程序并仅复制了已发布的文件?
  • 是的,我从 Visual Studio 发布了应用程序,只复制了发布的文件并替换了 bin 文件夹

标签: c# asp.net iis server asp.net-identity


【解决方案1】:

实际上这些是您的大会发布的位置 它与您的本地计算机无关,如果您在其他客户端上尝试,您会看到相同的结果

【讨论】:

  • 我应该怎么做才能解决这个问题?为什么这段代码在 localhost 中运行正常,但在服务器上却不行?
猜你喜欢
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 2015-08-26
相关资源
最近更新 更多