内容数据访问 - 诊断程序 - 应用程序

Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ContentDataAccess_NewDiagnoser_Application (UnitMonitor)

内容数据访问节点可监视 Application Virtualization Management Server 访问内容目录(可以是本地目录或网络共享目录)和读取请求的文件的能力。内容目录是包含 .SFT 文件的软件包所在的目录。

Knowledge Base article:

摘要

内容数据访问节点可监视 Application Virtualization Management Server 访问内容目录(可以是本地目录或网络共享目录)和读取请求的文件的能力。内容目录是包含 .SFT 文件的软件包所在的目录。
诊断程序

如果以下有一种条件为真,则会出现内容数据访问问题:
  1. 内容目录的路径无效。
  2. Application Virtualization Server 登录帐户没有访问内容目录的适当权限。
  3. 内容数据访问位置出现磁盘空间或硬件问题。

内容数据访问问题主要是由于对内容共享的访问权限导致的。您可以在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server\SOFTGRID_CONTENT_DIR 注册表值中找到所列的内容目录位置。

默认情况下,内容目录的路径如下:%ProgramFiles%\Microsoft System Center App Virt Management Server\App Virt Management Server\content

内容目录的路径是在 Application Virtualization Server 的本地注册表中和 Application Virtualization 数据库中配置的。在 Application Virtualization Management Server 服务启动后,它将尝试连接到在此注册表中配置的路径。如果无法连接 Application Virtualization Server 服务,它将尝试连接到在 Application Virtualization 数据库中配置的路径。如果无法重新连接 Application Virtualization Server 服务,则此服务不会启动。
 
默认情况下,Application Virtualization Server 登录帐户是“网络服务”帐户。Application Virtualization Server 登录帐户需要具有对内容目录的“读取”权限。如果内容目录的路径是通用命名约定 (UNC) 路径,Application Virtualization Server 登录帐户需要具有对共享目录的“读取”权限。如果 Application Virtualization Server 登录帐户没有适当的权限,则此服务不会启动。
 
要确保 Application Virtualization Server 登录帐户具有对内容目录的适当权限,请执行以下这些步骤:
 
确定 Application Virtualization Management Server 登录帐户。要完成此任务,请执行以下这些步骤:
  1. 在“控制面板”中,打开“管理工具”,然后启动“服务”。
  2. 右键单击 Application Virtualization Server,然后单击“属性”。
  3. 单击“登录”选项卡。
  4. 如果在“登录身份”下选择了“此帐户”,请记住在“此帐户”框中指定的此帐户(默认为“网络服务”)。如果在“登录身份”下选择了“本地系统”帐户,则 Application Virtualization Server 登录帐户是“本地系统”(系统)帐户。
  5. 如果内容目录是 UNC 路径,请在授予权限时使用 Application Virtualization Server 本地计算机帐户。
  6. 退出“服务”。
确保 Application Virtualization Server 登录帐户具有对内容目录的“读取”权限。要完成此任务,请执行以下这些步骤:
  1. 启动 Microsoft Windows 资源管理器。
  2. 找到内容目录。
  3. 右键单击内容文件夹,然后单击“属性”。
  4. 单击“安全”选项卡。
  5. 确保在第 1 步中确定的帐户具有“读取”权限。如果此帐户具有“读取”权限,请单击以选中“允许”复选框。
  6. 单击“确定”,然后退出 Windows 资源管理器。
  7. 确保在第 1 步中确定的帐户具有“读取”权限。如果此帐户没有“读取”权限。请单击以选中“允许”复选框。
  8. 单击“确定”,然后退出 Windows 资源管理器。
如果内容目录的路径是 (UNC) 路径,请确保 Application Virtualization Server 登录帐户具有对共享目录的“读取”权限。要完成此任务,请执行以下这些步骤:
  1. 启动 Microsoft Windows 资源管理器。
  2. 找到内容目录。
  3. 右键单击内容文件夹,然后单击“属性”。
  4. 单击“共享”选项卡。
  5. 确保在第 1 步中确定的帐户具有对共享目录的“读取”权限。如果此帐户没有“读取”权限,单击“权限”,然后单击以选中“读取”权限的“允许”复选框。
  6. 单击“确定”,然后退出 Windows 资源管理器。

Element properties:

TargetMicrosoft.AppVirtualization.Server.45.VirtualApplicationServer
Parent MonitorMicrosoft.AppVirtualization.Server.45.ContentDataAccess_HWS.HealthState
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.SingleEventLogManualReset2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
内容数据访问 - 诊断程序 - 应用程序
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ContentDataAccess_NewDiagnoser_Application" Accessibility="Public" Target="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer" TypeID="Windows!Microsoft.Windows.SingleEventLogManualReset2StateMonitorType" ParentMonitorID="Microsoft.AppVirtualization.Server.45.ContentDataAccess_HWS.HealthState">
<Category>EventCollection</Category>
<AlertSettings AlertMessage="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ContentDataAccess_NewDiagnoser_Application.Alert">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="EventRaised" MonitorTypeStateID="EventRaised" HealthState="Error"/>
<OperationalState ID="ManualResetEventRaised" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Application Virtualization Server</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">44899</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">44900</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
</Configuration>
</UnitMonitor>