【发布时间】:2011-12-09 16:41:16
【问题描述】:
我遇到了这种不太好的情况。当 Web 应用程序启动时 - 我为我的服务设置了不同的路由,以便我的多用户应用程序的租户连接到:
private static void RegisterRoutes()
{
// Setup URL's for each customer
using (var cmc = new CoreModelContext())
{
foreach (var account in cmc.Accounts.Where(aa => aa.IsActive).ToList())
{
RouteTable.Routes.Add(
new ServiceRoute(account.AccountId + "/mobile",
new MyServiceHostFactory(), typeof(MobileService)));
}
}
}
所以,当我的站点/服务启动时 - 它会从数据库中获取所有帐户并设置路由。
这是一个单点故障。有时服务器以错误的顺序重新启动,并且如果 SQL Server 未启动 - 此服务以“奇怪”模式启动。
今天网络服务停止响应。我检查了日志 - IIS 按计划回收池(默认设置)并启动了不同的工作进程。有些东西没有点击和繁荣 - 服务器停止响应。路线未注册...
所以。我的问题是..如何以最好的方式解决它?我可以将路由放到配置文件中,但这意味着我必须在 2 个地方维护这些 id。可能没那么糟糕,但如果可能的话,我宁愿做不同的事情。
是否可以以编程方式尝试并重新启动池?当Application_Start 中抛出异常时会发生什么?现在我没有困住它。
【问题讨论】:
标签: c# wcf iis wcf-binding