Orleans 2.0 官方文档 —— 6.5 部署 -> Azure云服务部署疑难解答

部署故障排除

本页提供了一些有关解决部署到Azure云服务时出现的任何问题的一般指导原则。这些是非常常见的问题,需要加以注意。请务必查看日志,以获取更多信息。

获取SiloUnavailableException

在尝试初始化客户端之前,首先检查并确保实际启动了silo。有时silo需要很长时间才能启动,因此尝试多次初始化客户端是有益的。如果它仍然抛出异常,那么silo可能会有另一个问题。

检查silo配置,并确保silo正常启动。

常见连接字符串问题

  • 部署到Azure时,使用的是本地连接字符串——网站将无法连接
  • 对silo和前端使用不同的连接字符串(Web和工作者角色)——网站将无法初始化客户端,因为它无法连接到silo

可以在Azure门户中,检查连接字符串配置。如果未正确设置连接字符串,日志可能无法正确显示。

不正确地修改配置文件

确保在ServiceDefinition.csdef文件中配置了正确的端点,否则部署将无法正常工作。它会给出错误消息,说它无法获取端点信息。

缺少日志

确保正确设置连接字符串。

Web角色中的Web.config文件,或者工作者角色中的app.config文件,可能修改的不正确。这些文件中的版本不正确,可能会导致部署问题。处理更新时要小心。

版本问题

确保在解决方案中的每个项目中,使用相同版本的Orleans。不这样做,会导致工作者角色回收。查看日志以获取更多信息。Visual Studio在部署历史记录中提供了一些silo启动时的错误消息。

角色保持回收

  • 检查所有相应的Orleans程序集在解决方案中是否存在,并将“复制到本地”设置为True。
  • 检查日志以查看初始化时是否存在未处理的异常。
  • 确保连接字符串正确。
  • 有关详细信息,请查看Azure云服务的疑难解答页面。

如何检查日志

  • 使用Visual Studio中的云浏览器,导航到存储帐户中的相应的存储表或blob。WADLogsTable是查看日志的不错的切入点。
  • 您可能只记录错误。如果还需要信息日志,则需要修改配置,以设置日志记录严重性级别。

程序化配置:

  • 创建ClusterConfiguration对象时,请设置config.Defaults.DefaultTraceLevel = Severity.Info
  • 创建ClientConfiguration对象时,请设置config.DefaultTraceLevel = Severity.Info

声明性配置:

  • OrleansConfiguration.xml和/或ClientConfiguration.xml文件中,添加

在Web和工作者角色的diagnostics.wadcfgx文件中,请确保将Logs元素中的scheduledTransferLogLevelFilter属性,设置为Information,因为这是一个额外的跟踪筛选层,用于定义将哪些跟踪发送到Azure存储中的WADLogsTable

您可以在“配置指南”中找到有关此内容的更多信息。

与ASP.NET的兼容性

ASP.NET中包含的Razor视图引擎,使用与Orleans相同的代码生成程序集(Microsoft.CodeAnalysisMicrosoft.CodeAnalysis.CSharp)。这可能会在运行时出现版本兼容性问题。

若要解决此问题,请尝试将Microsoft.CodeDom.Providers.DotNetCompilerPlatform(这是ASP.NET用于包含上述程序集的NuGet包)升级到最新版本,并设置绑定重定向,如下所示:

<dependentAssembly>
  <assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="1.3.1.0" />
dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="1.3.1.0" />
dependentAssembly>

你可能感兴趣的:(Orleans)