Hi,
We are currently mirgrating our production sites to a new server and have just found that we have some issues related to getting the AD provider working as it was before.
Currently we have the sites on:
- Windows Server 2003 SP2 (Physical server)
- IIS 6
- Sql Server 2005 (Mirrored)
- DNN 4.8.4
- AD Provider 1.0.4
- The site is running under an application pool with a domain account
- Impersonation is not turned on in the web.config
- Permissions applied to WindowsSignIn.aspx (Only Integrated authentication turned on)
With this configuration everything works perfectly (Auto-login, sync roles etc).
On the new server we have:
- Windows Server 2008 (VM on an ESX farm)
- IIS 7
- DNN, Sql & AD provider as above
- The site is running under an application pool with a domain account (In classic mode as per documentation)
- Impersonation is turned on (The impersonation user is the same as the application pool identity)
- Permissions applied to WindowsSignIn.aspx (IIS manager shows forms & Windows authentication on)
If I visit the site on the new server with the AD provider active, I get an access denied message with this stack trace:
[COMException (0x80070005): Access is denied.]
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +377678
System.DirectoryServices.DirectoryEntry.Bind() +36
System.DirectoryServices.DirectoryEntry.get_IsContainer() +31
System.DirectoryServices.ChildEnumerator..ctor(DirectoryEntry container) +26
System.DirectoryServices.DirectoryEntries.GetEnumerator() +25
DotNetNuke.Authentication.ActiveDirectory.HttpModules.AuthenticationModule.CheckPipelineMode(HttpRequest Request) +94
DotNetNuke.Authentication.ActiveDirectory.HttpModules.AuthenticationModule.OnAuthenticateRequest(Object s, EventArgs e) +111
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
If I navigate to WindowsSignIn.aspx directly, I get the windows authentication box and then a screen with the same error as above.
If I turn off AD authentication and login using my domain login to the site & go to the Admin -> Authentication page I get this error at the bottom:
Error: is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: Access is denied. ---> System.Runtime.InteropServices.COMException (0x80070005): Access is denied. at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_IsContainer() at System.DirectoryServices.DirectoryEntries.ChildEnumerator..ctor(DirectoryEntry container) at System.DirectoryServices.DirectoryEntries.GetEnumerator() at DotNetNuke.Authentication.ActiveDirectory.Settings.CheckPipelineMode() at DotNetNuke.Authentication.ActiveDirectory.Settings.Page_Load(Object sender, EventArgs e) --- End of inner exception stack trace ---
But I can still enter the credentials required to read from our AD and when I click update it finds the domain without issue.
I've seen posts where people have had similar errors, have tried the suggested solutions but they don't seem to work for me. Any one got any ideas what I might be doing wrong?
Cheers Wayne