我们有几个在线的Azure应用服务,重新启动任何一个我都遇到了一个一致的问题。
我们右键单击->从Visual Studio发布到现有的App Service实例,该实例立即使其联机并可以运行,我们可以毫无问题地更新和重新发布新代码,但是可以从Azure门户重新启动到App Service不会启动dotnet.exe
。
重新启动或停止/启动时,线程数立即降至0,并继续不执行任何操作。
我必须再次从VS手动发布以重新启动dotnet.exe
。
我可以看到dotnet.exe
不是通过Kudu -> Process Explorer
进行的活动过程,然后手动发布到App Service,然后再次刷新Process Explorer
列表,就会显示{{1} }现在处于活动状态,App Service开始按预期运行。
是否有一种方法可以防止这种情况发生,或者至少可以调试为什么会发生这种情况?
答案 0 :(得分:1)
事实证明,这是由静默故障引起的,除了我要设置的错误处理之外。 IIS将加速关联的进程,但是dotnet
会抛出并出错,并“无声地”死亡。
我使用引号是因为我没有利用Azure的深度日志记录,该日志记录将错误消息从普通视图隐藏直到打开。
一些基本的调试步骤:
打开您的Kudu
控制台(高级工具->转到->调试控制台),然后导航至LogFiles
,打开eventlog.xml
,最新事件列在底部。
在本地的dotnet myDll.dll
文件夹中运行debug
,其中myDll.dll
是项目中的主要dll
。通常,这会引发导致dotnet
退出的错误,这在设计时并不明显。
确保服务器端appsettings.json
(或关联的appsettings.[development/release].json
)包含您尝试访问的连接字符串。
我们不是由于设计时错误而发生的错误,通常在尝试访问运行时资源(例如appsettings
)时就会发生错误。