使用 servicestack 发布 asp.net 站点时正在使用的文件
File in use when publishing asp.net site with servicestack
当使用 WebDeploy 将我的 Asp.net 核心 ServiceStack 站点与 AppOffiline 规则发布到 IIS 时,我有时会收到一个错误,主 dll 文件被另一个进程锁定。排除故障后,它似乎缩小到仅在客户端连接到 ServerEvents 流时发生。如果我重试,我会继续收到几分钟的错误,然后它就会起作用。
我试图在发布前停止 AppPool,但 AppPool 关闭需要大约相同的时间,这让我相信发布失败是因为 AppPool 被挂起,因为某些事情与 ServerEvents.
根据我的研究,我没有发现任何会导致此问题的原因,但我有点卡住了。我正在考虑尝试使用 Redis 服务器事件来查看是否可以解决问题,但希望有人能先提供一些其他建议。
目前,我的 ServerEvents 配置非常基础。
Plugins.Add(new ServerEventsFeature()
{
IdleTimeout = TimeSpan.FromSeconds(60),
HeartbeatInterval = TimeSpan.FromSeconds(30)
});
您可以尝试使用最新的 ServiceStack v5.10.5 现在是 available on MyGet,它会在 AppHost 处理时明确处理每个活动订阅。
当使用 WebDeploy 将我的 Asp.net 核心 ServiceStack 站点与 AppOffiline 规则发布到 IIS 时,我有时会收到一个错误,主 dll 文件被另一个进程锁定。排除故障后,它似乎缩小到仅在客户端连接到 ServerEvents 流时发生。如果我重试,我会继续收到几分钟的错误,然后它就会起作用。
我试图在发布前停止 AppPool,但 AppPool 关闭需要大约相同的时间,这让我相信发布失败是因为 AppPool 被挂起,因为某些事情与 ServerEvents.
根据我的研究,我没有发现任何会导致此问题的原因,但我有点卡住了。我正在考虑尝试使用 Redis 服务器事件来查看是否可以解决问题,但希望有人能先提供一些其他建议。
目前,我的 ServerEvents 配置非常基础。
Plugins.Add(new ServerEventsFeature()
{
IdleTimeout = TimeSpan.FromSeconds(60),
HeartbeatInterval = TimeSpan.FromSeconds(30)
});
您可以尝试使用最新的 ServiceStack v5.10.5 现在是 available on MyGet,它会在 AppHost 处理时明确处理每个活动订阅。