gpt4 book ai didi

asp.net - ASP.NET 会捕获 WebRole 类中抛出的异常吗?

转载 作者:行者123 更新时间:2023-12-02 08:10:50 24 4
gpt4 key购买 nike

我想我在某处读到,WebRole 运行在与 Windows Azure 上的 IIS 不同的进程中,从而可以组合 Web 角色和辅助角色 http://things.smarx.com/#Combine%20Web%20and%20Worker%20Roles

假设以下通用代码:

public class WebRole : RoleEntryPoint
{
public override void Run()
{
... Exception gets thrown here.
}
}

这是否需要单独的异常处理方法?Run 与 OnStart 是否不同,意味着某些服务已启动?有什么最佳实践吗?

最佳答案

问题的标题和内嵌问题不同 - 您最关心哪一个?

1.3+ SDK 中的 WebRole 可以运行完整的 IIS,它运行在与 RoleEntryPoint 不同的进程下。这意味着出于异常处理目的,RoleEntryPoint 和 IIS Web 应用程序是完全隔离的。您需要在每个错误中进行显式错误处理,因为其中一个错误处理不适用于另一个错误处理。

您问的另一个问题与 Run 与 OnStart 有关。 OnStart 方法在您的实例连接到 LoadBalancer 之前调用。这是您在活跃流量到达之前用您需要做的任何事情引导角色的机会。您必须返回 true 并且不能在 OnStart 中抛出错误,否则您将永远不会获得事件实例。有些人使用 OnStart 以编程方式创建他们需要的 IIS 内容(站点、应用程序、虚拟目录等)。 Run 方法是主工作逻辑的入口点。它就像 static void Main() (但你永远不会退出)。

事实上,Web 角色和辅助角色几乎相同,唯一的异常(exception)是 Web 角色现在有一些很好的声明性语法来为您设置 IIS。使用 RoleEntryPoint 时,在辅助角色中运行的所有其他注意事项都适用于 Web 角色。

关于asp.net - ASP.NET 会捕获 WebRole 类中抛出的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com