Hi everyone,
I am simulating a 3 tier installation with boxes running windows server 2008 but I fail to start a Microsoft Dynamics NAV Server service after having the "Log on as This Account" set to a domain user. ](*,)
And in Application Log in Event Viewer I got this,
Log Name: Application
Source: MicrosoftDynamicsNAVServer
Date: 3/26/2010 9:23:59 AM
Event ID: 0
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: NAVSVR.NAVDEMO.CONTOSO.COM
Description:
Service:
The service MicrosoftDynamicsNavServer failed to start. This could be caused by a configuration error. Detailed error information:System.TypeInitializationException: The type initializer for 'Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider' threw an exception. ---> System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS2001: Source file 'C:\Windows\TEMP\hfnipgau.0.cs' could not be found
error CS2008: No inputs specified
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type)
at Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider..cctor()
--- End of inner exception stack trace ---
at Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider.get_Instance()
at Microsoft.Dynamics.Nav.WindowsServices.NavServiceBase.OnStart(String[] args).
Event Xml:
<Event xmlns="
http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="MicrosoftDynamicsNAVServer" />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2010-03-26T16:23:59.000Z" />
<EventRecordID>591</EventRecordID>
<Channel>Application</Channel>
<Computer>NAVSVR.NAVDEMO.CONTOSO.COM</Computer>
<Security />
</System>
<EventData>
<Data>Service:
The service MicrosoftDynamicsNavServer failed to start. This could be caused by a configuration error. Detailed error information:System.TypeInitializationException: The type initializer for 'Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider' threw an exception. ---> System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS2001: Source file 'C:\Windows\TEMP\hfnipgau.0.cs' could not be found
error CS2008: No inputs specified
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type)
at Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider..cctor()
--- End of inner exception stack trace ---
at Microsoft.Dynamics.Nav.Service.Metadata.MetadataProvider.get_Instance()
at Microsoft.Dynamics.Nav.WindowsServices.NavServiceBase.OnStart(String[] args).</Data>
</EventData>
</Event>
This step is rather straightforward with a Windows Server 2003 but I can't seems to make it happen with Windows 2008 :?
I have tried to look for a solution but failed to do so. Would like to check if anyone has similar issue before and manage to overcome?
Thanks.
Comments
Frankly I have tried adding the domain user account to the local administrator group of the Windows 2008 server box and by doing that the service DO start sucessfully. But I face another situation by doing that.
On the client box only login belongs to the domain admin group manage to connect to the NAV server using RTC. If I connecting with RTC with other normal domain user account then I will get "net.tcp:/<servername>:7046/DynamicsNAV/Service" cannot access error! ](*,)
Again, it is straightforward if I use a Windows Server 2003 box to host the NAV Server service. I can start the Dynamics NAV Server service with a normal domain user account without requiring that account to be added into local administrator group of the Windows Server 2003 box and, any domain user account from RTC client can connect the NAV server without problem!
I have configured delegation according to Installation Guide on both the Windows 2008 box and Windows Server 2003 box and have them checked with Best Practice Analyzer. The analyzer reported ok in both the server boxes.
I have a feeling additional configuration is required in a Windows 2008 box to host the NAV Server service? :-k
DotNet has a rather stupid library for use of XML files that generates, complies and then loads a C# program to cope with a compile time defined XML file. It uses C:\Windows\Temp to store the C# and object files.
Give the domain user the same access to C:\Windows\Temp that "Network Service" has (more or less full control).
TVision Technology Ltd
But I am surprised that this let me to the next challenge - only users in Domain Admin group able to access the service using RTC and normal user will simply get this error ](*,)
Any other setting that required for Windows 2008 to host the NAV Server service?
But as Admins can access I'd be looking at the Navision permissions (user must be explicitly named as having access) and the delegation setup. If there isn't a message buried in a log somewhere. (Event log, SQL log etc.)
TVision Technology Ltd
Log Start
- System
- Provider
[ Name] Microsoft-Windows-Security-Auditing
[ Guid] {54849625-5478-4994-a5ba-3e3b0328c30d}
EventID 4625
Version 0
Level 0
Task 12544
Opcode 0
Keywords 0x8010000000000000
- TimeCreated
[ SystemTime] 2010-03-28T15:03:19.279Z
EventRecordID 1734
Correlation
- Execution
[ ProcessID] 584
[ ThreadID] 660
Channel Security
Computer SVR02.NAVDEMO.CONTOSO.COM
Security
- EventData
SubjectUserSid S-1-0-0
SubjectUserName -
SubjectDomainName -
SubjectLogonId 0x0
TargetUserSid S-1-0-0
TargetUserName
TargetDomainName
Status 0xc000006d
FailureReason %%2313
SubStatus 0xc000006a
LogonType 3
LogonProcessName Kerberos
AuthenticationPackageName Kerberos
WorkstationName -
TransmittedServices -
LmPackageName -
KeyLength 0
ProcessId 0x0
ProcessName -
IpAddress -
IpPort -
Log End
Guess I have to explore further on method to setup permission delegation in Windows 2008
http://blogs.msdn.com/nav_developer/archive/2009/06/12/setting-up-nav-2009-on-three-machines.aspx