由于 WAS 未启动,IIS 应用程序池未启动

Has*_*zar 5 iis windows-10

我一直在处理 IIS 服务的问题。时不时地,它对我来说停止工作,并且始终是相同的问题:由于 WAS 服务未启动,IIS 服务和应用程序池无法启动。由于奇怪的错误,WAS 失败了:Windows could not start the Windows Process Activation Service service on Local Computer. Error 13: The data is invalid.

IIS 关闭

挂了

互联网上有很多关于此的噪音,但对我来说没有任何效果:

  • 具有相同 Windows 10 Ent 的第二台机器的 IIS 工作正常
  • C:\Windows\System32\inetsrv\Config目录中的配置文件进行逐行比较,只能得到完全匹配的有效 XML 文件
  • 预期存在的文件夹C:\inetpub\temp\apppools都在那里
  • WAS相关的注册表文件都与第二台机器匹配

对我有用的解决方案是完全删除 IIS 和 WAS,然后重新启动以重新安装。我这样做了很多次。但是,两天后,问题又回来了,我无法通过重新安装来使其正常工作。

我一直在阅读并在互联网上尝试不同的东西,但我现在已经没有耐心来解决这个问题了。

以下是我尝试启动 IIS 时发生的一系列事件(按升序):

1

2

3

这是在上述之后发生的警告:

4

我还想补充一点,就在昨天这个问题开始之前,我看到了一系列错误:

其他错误

现在,带有源的一次:SMSvcHost 4.0.0.0有点有趣,因为它具有以下详细信息:

A request to start the service failed.
 Error Code: System.Configuration.ConfigurationErrorsException: The type 'Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior, Microsoft.VisualStudio.Diagnostics.ServiceModelSink, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' registered for extension 'Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior' could not be loaded. (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config line 247)
   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.ServiceModel.Activation.AspNetEnvironment.UnsafeGetSectionFromConfigurationManager(String sectionPath)
   at System.ServiceModel.Configuration.ConfigurationHelpers.UnsafeGetAssociatedSection(ContextInformation evalContext, String sectionPath)
   at System.ServiceModel.Description.ConfigLoader.LookupCommonBehaviors(ContextInformation context)
   at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress, Boolean skipHost)
   at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, ServiceElement serviceSection)
   at System.ServiceModel.ServiceHostBase.ApplyConfiguration()
   at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)
   at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
   at System.ServiceModel.Activation.SharingService.StartControlService()
   at System.ServiceModel.Activation.SharingService.Start()
   at System.ServiceModel.Activation.TcpPortSharing.OnStart(String[] args)
 Process Name: SMSvcHost
 Process ID: 3348
Run Code Online (Sandbox Code Playgroud)

它指向 machine.config,但我不明白它为什么抱怨。我认为它正在寻找我没有安装在 Windows 组件中的 SMB 服务。

我现在坚持这个。