This past week we encountered a Lync Server error internally. We found a solution online, thanks to a fellow Lync blogger. I’m blogging about it today to document how we handled the troubleshooting process, and to showcase the blogger, a Mr. Graham Cropley, for his helpful content!
The Situation: Adding a Cumulative Update
We run Lync Server 2013 Standard Edition, with Persistent Chat and a SIP Trunk. This past week our engineers had the time to implement the December 2014 CU (I know, I know…).
The Error: Persistent Chat Fails
To quote the following blog post, Persistent Chat – December 2014 CU – 500 Internal Server Error at the Lync Exchange – UC Blog:
“After applying the latest December 2014 v2 Cumulative Update, the Persistent Chat webpage didn’t work externally, it just returned ‘500 – Internal Server Error’.”
One additional thing which isn’t mentioned in the post – not only does the Persistent Chat webpage fail, but so do existing chat rooms. Essentially all of Persistent Chat is unresponsive.
(Not to take away from Mr. Cropley’s good work here. Just adding our own observations for a more complete picture.)
According to his research/experimentation/glaring at the server, he determined this:
The culprit is in the web.config file from the later [December 2014] CU in %ProgramFiles%\Microsoft Lync Server 2013\Web Components\PersistentChat\Ext, which includes these extra lines inside the element:
<system.webServer> <modules> <remove name=”PreAuthModule” /> <add name=”PreAuthModule” type=”Microsoft.Rtc.Internal.PreAuthModule.PreAuthModule,Microsoft.Rtc.Server.WebInfrastructure, Version=220.127.116.11, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/> </modules> </system.webServer>
3 <remove name=”PreAuthModule” />
4 <add name=”PreAuthModule” type=”Microsoft.Rtc.Internal.PreAuthModule.PreAuthModule,Microsoft.Rtc.Server.WebInfrastructure, Version=18.104.22.168, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
This would seem to ensure that anything called PreAuthModule that may be there already is removed, and the Microsoft.Rtc.Internal.PreAuthModule was registered instead. Also by removing it first, this won’t cause an error from that module already being added.
How to Fix the Error: 3 Potential Fixes, We Chose to Convert the Persistent Chat Directory to an Application
At first we went through some of our own troubleshooting steps. Server restart, internal/external tests, etc. No change at all. Persistent Chat remained down, even though all other Lync Server Roles worked perfectly.
Next up, looking at the last change made. The December 2014 Cumulative Update. Did that break Persistent Chat? A few searches, and voila – it did indeed. Mr. Cropley’s post came right up in results. Clear and directly addressing our issue.
We opted for “Fix 1” of the 3 listed. For the same reasons he did – it has the least impact.
And it worked perfectly. The image above shows my Chat Rooms webpage (I added the red X), taken this morning. All Chat Rooms are working again, as is the Persistent Chat webpage on the server.
Thank You to Our Fellow Lync Blogger!
A big thank you to Mr. Cropley for his post! His work saved us a lot of troubleshooting time. The post is what I love to see in the blogosphere – solid, clear how-to documentation from people working with the technology.
Here’s the link again, if you too are faced with Persistent Chat failing after the December 2014 CU:
Persistent Chat – December 2014 CU – 500 Internal Server Error [Lync Exchange – UC Blog]