• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 6071
  • Last Modified:

Exchange Server 2003 - Outlook Web Access & Mobile Access

Until today i was running Exchange 2003 on my SBS 2003 server.  Today i installed exchange 2003 on a new server, on the same network, and then move the mailboxes from the old exchange server to the new one.  Outlook works with the new server and emails sent to our domain are forwarded to the new server mailbox store.  Some of my users have treos to check their email, the treo 650 uses the Exchange Active sync to check email, and it doesn't work and also the outlook web access no longer works.  Does anyone know what i need to do to get these 2 thing working, do i need to change something in IIS 6?
0
msaltz
Asked:
msaltz
  • 9
  • 7
1 Solution
 
SembeeCommented:
As you have changed servers, has everything else been moved across?
OWA, SSL certificates etc? Updated the port forwarding on the firewall?
Does the name that is in the devices resolve correctly when outside?

Simon.
0
 
Steve MarinIT ConsultantCommented:
On the new server, you must make sure you run the connect to the Internet wizard, it will configure OWA for you automatically. As far as the Treo users go, can you give some more info as to "it not working" there is nothing special you need to setup in exchange for that to  work on a Treo.
0
 
msaltzAuthor Commented:
The new server has Windows 2003 as the OS and Exchange 2003 on it.  i can't find a connect to the Internet Wizard on it, where is this located.  I can get on the internet with IE.  The SBS server has a Connect to Internet Wizard.  The new server only has Exchange installed on it.  The SBS server still does everything it did before i only moved the exchange mail boxes to a new server.  On monday i'll get the exact treo error messages, i don't have a treo, so i got to wait until a treo user is here at work.  But i do remember the Treo's error message saying something about IIS in the message.  I am thinking i need to change the virtual directory settings in IIS Manager for Exadmin, Exchange, and ExchWeb.  Or maybe the application pools for Microsoft-Server-ActiveSync and OMA which are also in the IIS manager.
0
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
SembeeCommented:
Are you using forms based authentication?
If so, then you will have to make some changes to the IIS configuration.

There are two sets of instructions around.
Mine: http://www.amset.info/exchange/mobile-omafba.asp
Microsoft's: http://support.microsoft.com/default.aspx?kbid=817379

Depends on how much reconfiguration of the server you want to make.

Also, you don't have to wait until there is a Treo available. If I was waiting for the user to bring in a handset I would be wasting half my life. Use the emulator instead. http://www.sembee.co.uk/archive/2006/05/19/17.aspx

Simon.
0
 
msaltzAuthor Commented:
The treo 650 error message is "AirSAMSMEmail.c 2549 1 HTTP/1.1 500 Internal Server Error Date: Mon 05 Jun 2006 16:27:32 GMT Server: Microsoft IIS/6.0 MicrosoftOfficeW".

As far as the links you posted, Sembee, I don't think they apply to my situation.  

When i go to http://exchange2k3.logmax.local/exchange i can logon on the Outlook Web Access, this is only accessible internally (exchange2k3 is the name of the new server).  But if i try to acess OWA externally through http://www.logmax.us/exchange i cann't login.  External web traffic is routed to the IIS server on the computer called vancouver2.  So I am 99% sure that when i try to go to OWA external i am go to the IIS server on vancouver2 and it points to information for OWA on it not on exchange2k3.  So i then go to IIS Manager on vancouver2 and view the properties of the exchange virtual directory, and it says the content for this resource comes from a directory located on this computer and the local path is '\\.\BackOfficeStorage\logmax.us\MBX'.  But i think i want it to point to a directory on the exchange2k3 computer.  So I changed the virtual directory to a share on another computer and the network directory to '\\exchange2k3.logmax.local\BackOfficeStorage\logmax.us\MBX'.  And then i changed the settings for the ExchWeb virtural directory from a local path (C:\Program Files\Exchsrvr\exchweb) to a shared network directory of '\\exchange2k3.logmax.local\Exchsrvr\exchweb' and then changed the bin path from 'C:\Program Files\Exchsrvr\ExchWeb\bin' to '\\exchange2k3.logmax.local\Exchsrvr\exchweb\bin' and the auth virtual directory from 'C:\Program Files\Exchsrvr\exchweb\bin\auth' to '\\exchange2k3.logmax.local\Exchsrvr\exchweb\bin\auth'.  And the public virtural directory from '\\.\BackOfficeStorage\logmax.us\Public Folders' to '\\exchange2k3.logmax.local\BackOfficeStorage\logmax.us\Public Folders'.  Then I changed OMA from 'C:\Program Files\Exchsrvr\OMA\Browse' to '\\exchange2k3.logmax.local\Exchsrvr\OMA\Browse'.  And then I change Microsoft-Server-ActiveSync properties from 'C:\Program Files\Exchsrvr\OMA\Sync' to '\\exchange2k3.logmax.local\Exchsrvr\OMA\Sync'.  '\\exchange2k3.logmax.local\Exchsrvr' is a share i made on the exchange2k3 serverpointing to 'C:\Program Files\Exchsrvr' and i also gave the administrator@logmax.local full control over this directory.  I told IIS to connect to the network shares as the administrator.  i tried to change the Exadmin virural from '\\.\BackOfficeStorage' to '\\exchange2k3.logmax.local\BackOfficeStorage',but i get an error saying network path now found.

http://exchange2k3.logmax.local/exchange stills works.  But https://logmax.us/exchange does not the login page appears but when click the log in button i get a page not found error theurl in ie is 'https://logmax.us/exchweb/bin/auth/owaauth.dll'.  If i browse through the web site with IIS Manger i can locate the .dll.  Any ideas of what to try now.
0
 
SembeeCommented:
Unless Exchange 2003 is installed on your machine "vancouver2" and the server is configured as a frontend server, you will not get OWA on that machine.
The new Exchange 2003 server needs to be directly exposed to the Internet, or a frontend server needs to be setup (requiring an additional set of hardware, Windows 2003 license and Exchange 2003 standard).

Simon.
0
 
msaltzAuthor Commented:
Thank you simon.  I configure vancouver2 as the front end and exhchange2k3 as the back end.
I first went into IIS Manger, on vancouver2, and changed the virtual directories back.
The i went into Exchange System Manager and went to the server properties of the exchange2k3 server and on the RPC-HTTP tab i selected RPC-HTTP backend server.  Next i went to the server properties of vancouver2 and on the RPC-HTTP tab i selected RPC-HTTP frontend server and on the general tab i put a check beside This is a frontend server.  Before i applied the settings for vancouver2 i change the Recipent Update Service properties, for both LOGMAX2 & Enterprize Configuration, properties to use exchange2k3 as the server instead of vancouver2.  I also did the same thing for the Defualt Offline Address List.  Then rebooted both servers.
After they rebooted http://www.logmax.us/exchange worked and http://exchange2k3.logmax.local/exchange worked, so OWA is now working.  1 user i support has a treo 700w and it checks email through POP3 and it started working.  But the Treo 650's, which use exchange active sync, still don't work.  The error i get is: 'AirSAMSMEmail.c 2549 1 HTTP/1.1 500 Internal Server Error Date: Wed 07 Jun 2006 17:27:32 GMT Server: Microsoft IIS/6.0 MicrosoftOfficeW'.
0
 
msaltzAuthor Commented:
I found this acticle from Microsoft on the error and followed the steps in it, http://support.microsoft.com/default.aspx?scid=kb;en-us;829167.

C:\Inetpub\AdminScripts>cscript adsutil.vbs enum w3svc/1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

KeyType                         : (STRING) "IIsWebServer"
ServerState                     : (INTEGER) 2
ServerComment                   : (STRING) "Default Web Site"
ServerAutoStart                 : (BOOLEAN) True
ServerSize                      : (INTEGER) 1
ServerBindings                  : (LIST) (1 Items)
  ":80:"

SecureBindings                  : (LIST) (1 Items)
  ":443:"

MaxConnections                  : (INTEGER) 500
DefaultDoc                      : (STRING) "Default.htm,Default.asp,index.htm,ii
sstart.htm,Default.aspx"
NTAuthenticationProviders       : (STRING) "NTLM,Negotiate"
SSLCertHash                     : (BINARY) 0xb6 e6 e4 ea 95 45 9a c1 2f d2 23 73
 b1 b3 14 26 3b 9e de e7
SSLStoreName                    : (STRING) "MY"
ServerCommand                   : (INTEGER) 1
Win32Error                      : (INTEGER) 0
AppPoolId                       : (STRING) "DefaultAppPool"
[/w3svc/1/Filters]
[/w3svc/1/IIsCertMapper]
[/w3svc/1/ROOT]


C:\Inetpub\AdminScripts>cscript adsutil.vbs set w3svc/1/NTAuthenticationProvider
s ""
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

NTAuthenticationProviders       : (STRING) ""

C:\Inetpub\AdminScripts>cscript adsutil.vbs enum w3svc/1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

KeyType                         : (STRING) "IIsWebServer"
ServerState                     : (INTEGER) 2
ServerComment                   : (STRING) "Default Web Site"
ServerAutoStart                 : (BOOLEAN) True
ServerSize                      : (INTEGER) 1
ServerBindings                  : (LIST) (1 Items)
  ":80:"

SecureBindings                  : (LIST) (1 Items)
  ":443:"

MaxConnections                  : (INTEGER) 500
DefaultDoc                      : (STRING) "Default.htm,Default.asp,index.htm,ii
sstart.htm,Default.aspx"
NTAuthenticationProviders       : (STRING) ""
SSLCertHash                     : (BINARY) 0xb6 e6 e4 ea 95 45 9a c1 2f d2 23 73
 b1 b3 14 26 3b 9e de e7
SSLStoreName                    : (STRING) "MY"
ServerCommand                   : (INTEGER) 1
Win32Error                      : (INTEGER) 0
AppPoolId                       : (STRING) "DefaultAppPool"
[/w3svc/1/Filters]
[/w3svc/1/IIsCertMapper]
[/w3svc/1/ROOT]


Above is a copy of the cmd windows when i ran the commands in the link.  NTAuthenticationProviders was "NTLM,Negotiate" and now is "", which should it be?
0
 
SembeeCommented:
NTLM, Negotiate I suspect means that both basic and integrated authentication is enabled. That isn't normally an issue.

If you have a user with a Treo 700w you should flick them over to EAS if possible. Much better service.

Does OMA work? Try it from a desktop browser with show friendly http error messages turned off so that you can see the real error.

Simon.
0
 
msaltzAuthor Commented:
I changed the NTAuthenticationProviders from "" back to "NTLM,Negotiate".

The Treo 700 uses POP because when i tried to setup EAS for him i kept getting an error.  I agree EAS is a much better service.  I am planning on giving him EAS and figuring out the problem i firest need to get Treo 650's working on EAS, they are a bigger priorety.

As far testing OMA, I am not sure how to do it.  I am guessing that i go to http://logmax.us/OMA (which is on vancouver2, the frontend exchange server), i enter my login and the page says " A System error has occurred while processing your request. Please try again. If the problem persists, contact your administrator."  I then went to internet options in IE and unchecked Show Friendly HTTP Error Messages, but the message was the same.  So i reboot the desktop and ie gave the same error.  Next i went to http://exchange2k3.logmax.local/oma (which is on the backend server), i entered my login and it appear to beloading correctly.  Then i went to vancouver2's event viewer and in the application log i found an error.
Info from the error log:
Event Type:      Error
Event Source:      MSExchangeOMA
Event Category:      (1000)
Event ID:      1503
Date:            6/8/2006
Time:            9:24:38 AM
User:            N/A
Computer:      VANCOUVER2
Description:
An unknown error occurred while processing the current request:
Message: The remote server returned an error: (501) Not Implemented.
Source: Microsoft.Exchange.OMA.ExchangeDataProvider
Stack trace:
   at Microsoft.Exchange.OMA.ExchangeDataProvider.OmaWebRequest.GetRequestStream()
   at Microsoft.Exchange.OMA.ExchangeDataProvider.ExchangeServices.GetSpecialFolders()
   at Microsoft.Exchange.OMA.ExchangeDataProvider.ExchangeServices..ctor(UserInfo user)

Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
Stack trace:
   at System.Reflection.RuntimeConstructorInfo.InternalInvoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at Microsoft.Exchange.OMA.UserInterface.Global.Session_Start(Object sender, EventArgs e)

Message: Exception of type Microsoft.Exchange.OMA.DataProviderInterface.ProviderException was thrown.
EventMessage:
UserMessage: A System error has occurred while processing your request. Please try again. If the problem persists, contact your administrator.
Source: Microsoft.Exchange.OMA.UserInterface
Stack trace:
   at Microsoft.Exchange.OMA.UserInterface.Global.Session_Start(Object sender, EventArgs e)
   at System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e)
   at System.Web.SessionState.SessionStateModule.CompleteAcquireState()
   at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)
   at System.Web.AsyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
0
 
SembeeCommented:
Check the application pool settings in IIS Manager:

/exchange - ExchangeApplicationPool*
/exchweb - ExchangeApplicationPool*
/exadmin - ExchangeApplicationPool*
/public  - ExchangeApplicationPool*
/oma - ExchangeMobileBrowseApplicationPool
/Microsoft-Server-ActiveSync - ExchangeApplicationPool

* will probably show ExchangeApplicationPool but greyed out.

Simon.
0
 
msaltzAuthor Commented:
Simon,
I checked the application pool settings in IIS manager and all of them were correct.   Although none of them were greyed out.
0
 
SembeeCommented:
Are you using SSL?
Have you got the require SSL option enabled on either the /exchange, /oma or /Microsoft-Server-Activesync virtual directories? If so, remove it.

Simon.
0
 
msaltzAuthor Commented:
I turned off require SSL on /exchange, the other 2 did not have it on.
http://logmax.us/oma still gives the same error.
Treo's still don't work.
0
 
msaltzAuthor Commented:
Today i decided to remote in to vancouver2, front-end exchange 2003, and try going to http://localhost/oma.  After enter my login the following is showed:
Server Error in '/OMA' Application.
--------------------------------------------------------------------------------

Collection was modified; enumeration operation may not execute.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

Source Error:

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

  <%@ Page Language="C#" Debug="true" %>

or:

2) Add the following section to the configuration file of your application:

<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.  

Stack Trace:


[InvalidOperationException: Collection was modified; enumeration operation may not execute.]
   System.Collections.ArrayListEnumeratorSimple.MoveNext() +2754446
   Microsoft.Exchange.OMA.Tracing.OmaTrace.set_DebugOutputTracing(Boolean value) +167
   Microsoft.Exchange.OMA.UserInterface.Global..ctor() +262
   ASP.global_asax..ctor() +5

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +103
   System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +261
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +66
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1036
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +114
   System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +184
   System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +106
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +214

 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42



I also noticed that in IIS Manager i have a virtual directory called "exchange-oma'.  The local path of it is '\\.\BackOfficeStorage\logmax.us\MBX'.  It is the ExchangeApplicationPool and does not require SSL.  When i go to http://localhost/exchange-oma', i get an http 404 error(file or directory not found).
0
 
SembeeCommented:
That sounds like someone has attempted to carry out the fixes on this KB article: http://support.microsoft.com/default.aspx?kbid=817379

It shouldn't be required on a fe/be scenario.
You could try reversing the changes outlined in the KB article and see if that fixes it.

Simon.
0
 
msaltzAuthor Commented:
Does it matter that the frontend exchange server is running on SBS 2003?  The exchange-oma virtual directory on the frontend server was created by the SBS install.

As far as the KB article, Method 1 is how i setup exchange server on vancouver2 as a front-end server.  Method 2 says use only if you don't have a frontend server.


But i did finally get EAS working here is how i did it.  On the KB article, http://support.microsoft.com/default.aspx?kbid=817379, On the backend server i compete steps 1-17 of method #2 and then step 23.  On step #14, I also added the ip address of my frontend server and 127.0.0.1.  After I did these EAS started working, the Treo 650 users are happy!

Thanks Simon for the help!
0

Featured Post

Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

  • 9
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now