【发布时间】:2018-08-28 13:01:37
【问题描述】:
我有一个用于跟踪门票和门票时间的应用。
在该应用程序中,我有一个时间控制器,可以显示所有输入的时间。
[Authorize]
[RouteArea("Work", AreaPrefix = "")]
[RoutePrefix("Company/{companyId:int}/Client/{clientId:int}/Ticket/{ticketId:int}")]
public class TimeController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
[Route("Time")]
public ActionResult Index(int ticketId, int clientId, int companyId)
{
if (ticketId == 0)
{
var work = db.Time
.Include(c => c.Ticket)
.Where(c => c.Ticket.ClientId == clientId)
.OrderByDescending(c => c.Date)
.ToList();
return View(work);
}
else
{
var work = db.Time
.Include(c => c.Ticket)
.Where(c => c.TicketId == ticketId)
.OrderByDescending(c => c.Date)
.ToList();
return View(work);
}
}
如果我传递一个ticketId,它将过滤与该ticket 相关的所有工作。
http://somedomain.com/Company/1/Client/1/Ticket/1/Time
当我想查看与客户端相关的所有工作(不是特定于票证的)时,我将为票证 ID 传递一个 0,例如:
http://somedomain.com/Company/1/Client/1/Ticket/0/Time
当我在 Visual Studio 调试器和本地 IIS 中运行它时,它运行良好。
当我将此发布到生产服务器时,0 将导致找不到 404 页面。
任何关于可能是什么原因的想法将不胜感激。
【问题讨论】:
-
你能展示剩下的方法吗?
-
我更新了完整代码
-
其他路线在生产中有效吗?是生产环境中的 IIS 吗?
-
所有其他控制器和路由都可以完美运行。这是唯一一个在生产中更改为 0 时抛出 404 的问题。
-
只是一个旁注。这个应用程序已经投入生产使用了很长一段时间了。没有问题。我今天刚刚进行了此更新,因此我可以查看基于客户的时间与票证。这是我遇到的第一个问题,它只与那个 0 相关。据我所知,它特定于生产服务器。
标签: c# asp.net-mvc iis asp.net-mvc-routing windows-server-2012