以编程方式重新启动IIS托管WCF服务-更改绑定问题
本文关键字:绑定 问题 服务 WCF 方式 编程 重新启动 IIS 托管 | 更新日期: 2023-09-27 18:17:34
我陷入了这种不太好的境地。当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没有启动-此服务启动在"怪异"模式。
今天web服务停止响应。我按计划检查了日志- IIS回收池(默认设置),并启动了不同的工作进程。有些东西没有点击,服务器停止响应。路由未注册…
。我的问题是……如何最好地解决这个问题?我可以把路由配置文件,但这将意味着我必须在2个地方维护这些id。可能没那么糟,但如果可能的话,我宁愿换个方式。
是否可以以编程方式尝试重新启动池?在Application_Start
中抛出异常时会发生什么?现在我没有捕获它
不确定这是否是一个"修复",但是当我们有类似的依赖问题时,我们确保其他依赖不能在"weird"模式下成功启动。在这种情况下,如果sql server不可用,至少在生产中,我将使应用程序关闭。什么都不处理比处理错误要好得多。