Hallo zusammen,
kurz zur Vorgeschichte:
wir haben 2 Exchange Server in einer DAG, beide Server haben alle (außer UM) Exchange rollen.
Das Problem scheint aber nur auf einem der Server aufzutreten.
mitte letzen Jahres hatte ich das erste mal mit Fehler events vom "System.ServiceModel 3.0.0.0" zu tun (ich glaube damals noch auf Rollup 2)
Diese betrafen aber eher das OWA bzw. ECP (inbox rules anzeigen ging nicht) aber den gleichen Server.
Das konnte ich damals mit einem:
C:\Windows\Microsoft.NET\Framework64\v3.5\wfservicesReg.exe /c
lösen.
Der Aktuelle Fehler im EWS kam quasi über Nacht zum Montag 05.01) ohne Windows / Exchange updates o.ä. installiert zu haben und hat zur folge, dass z.B. das Autodiscover nicht mehr funktioniert oder auch free&busy infos nicht mehr angezeigt werden können.
Alles was ich bisher probiert habe, behebt den Fehler nur temporär für wenige Stunden:
- reboot
- wfservicesReg.exe /c
- "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\ews" umbenennen neu anlegen lassen
- iisreset
- EWS virtual dir. reset (remove/add)
was ich noch überprüft habe:
- IIS Site bindings
- IIS Authentifizierungen der Verzeichnisse
- powershell 2.0
Specs:
- Exchange 2010 SP3 Rollup 7
- Windows Server 2008 R2 SP1
Fehler:
WebHost konnte eine Anforderung nicht verarbeiten.
Absenderinformationen: System.ServiceModel.ServiceHostingEnvironment+HostingManager/30542218
Ausnahme: System.ServiceModel.ServiceActivationException: Der Dienst "/EWS/exchange.asmx" kann aufgrund einer Ausnahme während der Kompilierung nicht aktiviert werden. Die Ausnahmemeldung lautet: Der Typeninitialisierer für "Microsoft.Exchange.Services.Wcf.MessageInspectorManager" hat eine Ausnahme verursacht.. ---> System.TypeInitializationException: Der Typeninitialisierer für "Microsoft.Exchange.Services.Wcf.MessageInspectorManager" hat eine Ausnahme verursacht. ---> System.IO.FileNotFoundException: Die Datei "C:\Windows\TEMP\34h-8eez.dll" konnte nicht gefunden werden.
Dateiname: "C:\Windows\TEMP\34h-8eez.dll"
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
bei Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)
bei Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources)
bei Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources)
bei System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)
bei System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
bei System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
bei System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
bei System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
bei Microsoft.Exchange.Services.Wcf.MessageInspectorManager..cctor()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Microsoft.Exchange.Services.Wcf.MessageInspectorManager..ctor()
bei Microsoft.Exchange.Services.Wcf.MessageInspectorBehavior.ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
bei System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
bei System.ServiceModel.ServiceHostBase.InitializeRuntime()
bei System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
bei System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
bei System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
bei System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
bei System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
Prozessname: w3wp
Prozess-ID: 67284
Der Dateiname der nicht auffindbaren DLL ist nach jedem recompile einen anderer (und ist auch nicht in "C:\Windows\TEMP\" vorhanden) Ansonsten ist die Fehlermeldung immer gleich.
Über ähnliche Fehler habe ich einiges gefunden und ich bin auch schon etliche threads und workarounds durch, nur leider bisher ohne langfristigen Erfolg.
Momentan stehen noch Schritte wie Rollup neu installieren oder .NET framework reparieren / neu installieren aus aber das wäre dann eher ein rumstochern statt gewusst-wie.
Falls jemand Ideen, Anregungen oder Vorschläge hat, immer her damit!
Danke im Voraus und viele Grüße
Stephan