Lync 2010 以降、Lync クライアントと Exchange サーバーが直接やり取りを行うことで様々なサービスを提供する機能がより一層強化されています。
特に Lync という製品の特性上、ネットワーク パケットを解析できるのは当たり前のスキルで、
そこに SQL/Office Web App Server/Exchange/SharePoint/Voice Gateway などの周辺製品についても一定以上のスキルが求められます。
そこで数日に分けて Exchange との連携について、基本動作+トラブルシュートについて解説をしたいとおもいます。
まず、最初に Lync と Exchange との連携で実際に提供されている機能については以下の URL を参照ください。
Lync 2010 の統合
(Lync 2010 と記載されておりますが、Lync 2013 で統合される機能は基本的に同様です。)
ここで注意していただきたいのは、Lync クライアントが Outlook と通信することはないという事です。
Lync と Exchange が直接通信を行います。
その際に使用する通信インターフェースが EWS と MAPI になります。
つまり、同一端末に Outlook がインストールされていなくても Exchange と連携可能です。
では、どのように Lync クライアントと Exchange が EWS 接続を実現するか順を追ってみていきましょう。
1. タスクトレイの Lync アイコンを [Ctrl] を押しながらクリックします。(赤丸の中が Lync のアイコン)
2. [構成情報] をクリックします。
3. EWS 展開状況を確認します。
以上の方法により、現時点で EWS 接続が出来ているかどうか確認することが可能です。
Lync と Exchange は TCP/IP の技術に則って接続されます。
そのため、当たり前のこととして、DNS 名前解決で、FQDN から IP アドレスを解決しネットワーク レイヤーでの接続を行います。
Autodiscover SRV record
<smtpdomain> は、Active Directory のユーザー オブジェクトの proxyAddresses 属性の primarySMTP アドレスから情報を取得します。
管理者が Primary SMTP アドレスの値を確認する方法とユーザーが Primary SMTP を確認する方法を以下に紹介します。
管理者が Primary SMTP アドレスを確認する方法
管理者が Primary SMTP を確認するには、[Active Directory ユーザーとコンピューター] を使用するのが一般的です。
1. [Active Directory ユーザーとコンピューター] を起動します。
2. [表示]-[拡張機能] にチェックを入れます。[拡張機能] にチェックをいれることで、プロパティから属性値を確認する事が可能です。
3. 該当のユーザーを右クリックし [プロパティ] を開きます。
4. [属性エディター] タブで [proxyAddresses] を選択し [編集] をクリックします。
5. 大文字で "SMTP" となっているのが Primary SMTP アドレスとなります。
ユーザーが Primary SMTP アドレスを確認する方法
ユーザーが Primary SMTP アドレスを確認するには、Outlook のアドレス帳をしようするのが一般的です。
1. Outlook で該当ユーザーの [プロパティ] を開きます。
2. [電子メール] タブで 大文字で "SMTP" となっているのが Primary SMTP アドレスとなります。
以上で、接続する際に必要となる情報である、 Primary SMTP のアドレスを確認する事ができました。
ひきつづき、快適な Lync ライフをお楽しみください。
My name is David Bélanger, and I’m a program manager on the Remote Desktop team working on Remote Desktop apps for the different Windows platforms. The Microsoft Remote Desktop Preview app for Windows Phone 8.1 is currently available in the Windows Phone Store and we are adding new features over time to ensure the app meets your needs.
We’d love your help in finding out what feature set is really important to you to ensure you can accomplish the activities you leverage Remote Desktop for, whether that’s connecting back to your home PC, accessing your office PC while out to lunch or eventually being able to connect to the new Microsoft RemoteApp service or other remote resources made available to you by your admin.
To help you do so and help us prioritize, we’ve created a new feature request site. So go on over, take a look at what others have requested, vote on your favorites or add your own new feature requests. Note that posting does not guarantee that your request will make it into the product, but it is a good way to ensure we know what you really care about.
Today we’re announcing the Release Candidate for Visual Studio Update 3, which is now available for download; direct links for these downloads are at the bottom of this post. You can read more in the announcement on Brian Harry’s blog, as well as the Visual Studio 2013 Update 3 RC release notes. As with all VS updates, Update 3 offers new features as well as reliability fixes and bug fixes, with a particular focus on three areas: support for multi-device development with Apache Cordova™, improvements to our diagnostics experience, and general improvements to the user experience including a new setting that enables you to turn off the ALL CAPS menus – something many users have asked for.
Here’s some more information about the new features:
Application Insights. Application Insights, Microsoft’s service for monitoring production web sites and Windows Store and Phone apps, is now included in this update. Key enhancements in this release include polish to the account setup experience to create accounts directly in Azure without requiring a Visual Studio Online account as well as other enhancements from the Preview we published to the Visual Studio Gallery.
Visual Studio Graphics Analyzer. Diagnosing DirectX rendering and performance issues is tricky and the Visual Studio Graphics Diagnostics features help. In Update 3, we have enhanced the Graphics Analyzer to analyze graphics frames and to view the impact of shader code changes without re-running the app. You can easily configure capture options in Tools Options under Graphics Diagnostics.
Managed memory dump analysis. When analyzing managed memory dump files, you can now Go to Definition and Find All References of the selected type. To learn more, check out the blog post on .NET Memory Analysis.
CPU and Memory Usage tool. The CPU Usage tool in the Performance and Diagnostics hub now enables you to navigate from a function name in the Call Tree to the definition of that function in the editor so that you can easily see the code that is using CPU in your application. We have also made improvements to the Memory Usage tool such as support for Win32 and WPF applications (.NET 4.0 and up on Windows 8.1) and the ability to force garbage collections in managed apps.
Multi-Monitor configuration with Windows Store App. When debugging a Windows Store app with a multi-monitor configuration, Visual Studio now remembers which monitor your app was last run on. Here are some images to describe this experience.
CodeLens. CodeLens, an editor productivity feature available in Visual Studio Ultimate, is now available to show authors and changes to files in Git repositories. If you use Git for source control and TFS for work item tracking, CodeLens work item indicators now provide information about work items associated with a method, or class.
ALL CAPS. The change in our menus to use all capital letters was one of the areas about which we received a lot of feedback, so a while ago we added a registry key that disabled the ALL CAPS menus in Visual Studio 2012. To make the setting more discoverable and to enable it to remain set as you upgrade across Visual Studio versions, we have now added a Tools Options setting under the general Environment settings that lets you set your preferred menu bar styling. We also roam this setting so it’s available on all your devices.
You can learn more by reading the release notes and KB article, and then download the Update 3 RC bits on the download center. You can also install an integrated package of Visual Studio 2013 RTM and Update 3 RC for six Visual Studio products:
Many of the features and bug fixes in this release come from your feedback. Thank you for sharing these suggestions, thoughts and ideas with us on our UserVoice site and through the thousands of Send-a-Smile and Send-a-Frown actions you sent us from inside the IDE. If you find a bug please send it to us the Visual Studio Connect site.
John Montgomery, Director of Program Management, Visual Studio Platform
John has been at Microsoft for 15 years, working in developer technologies the whole time. Most recently before working on the Visual Studio core development environment, he was working on the tools for Windows 8 development.
In the CTP1, the authors and change indicators that we introduced did not refresh automatically when source control operations occurred. As a user, you had to manually refresh the indicators using the contextual command (or close and reopen the file)
In this RC, all the CodeLens for Git team indicators now refresh automatically when you:
The refresh occurs when performing these actions from Visual Studio or from any other tool, including the command line.Improved experience for CodeLens for Git indicators used for big files with a lot of changes
In Visual Studio 2013 Update 3 CTP1, the authors and change indicators could take some time to appear, especially in the case of source files containing a lot of code elements or having a big change history. When that occurred, we received feedback that the users could not tell if something was broken, or that there were no change, or if it was just taking a lot of time. This was not an issue with the TfVc CodeLens team indicators, as they retrieve pre-computed data from the Tfs server. But since the processing occurs locally on the client for Git indicators, we had to let the user know that the computation was being done.
In this RC, the Git collaboration indicators shows dimmed placeholders while data is being computed, similar to the reference indicator:
Then, as things get computed, the numeric information appears and the color of the indicators get darker:
In addition to the latest author, and the number of additional people who have changed the code element, we now display how long ago the last change happened (31 days ago in this case)
As was explained in the previous blog entry, the CodeLens for Git indicators work with any Git repository. In particular, they also work for Git repositories hosted in TfGit, either on premise, or in Visual Studio Online. In that case, you might be using Tfs to manage your work items.
When you are connected to a Team Project Collection (either from a TFS server or VS Online), and when we recognize that commits were associated with work items, we display another indicator, the Work item indicator telling you the number of work items associated with all the commits involving this code element.
When you click on the indicator, we go to the Tfs Server
And we get the work item details
As in the case of the CodeLens for TfVc indicators, you can navigate to the work items (this will open a tab in Visual Studio), or to the commit, which will appear in Team Explorer.
Of course, as in the case of TfVc CodeLens team indicators, we also changed the changes indicators popup to add the work items associated with commits:
As an aside, you might wonder in the image below some if the instances of the author have a green Lync presence indicator (meaning the author is currently available on Lync), and others show the same author as absent. This is because I did the commits with 2 different credentials (but the same display name). In one case I used my Microsoft Id, and when the organizational ids became available in VS Online, I started using my corporate ID, for which I show-up as available right now.Deeper dive into what it means for commits to be associated with work items
Here I've double-clicked on the commit, and I can see the commit details in Team explorer.
The reason why CodeLens for Git knows that there are two work items associated with this commit is that the last line of the comment is of the form:
Related Work Items: #1, #3
This way, without any call to the TFS server, the Git CodeLens indicators know how many work items the commits are related to. But they don't know:
CodeLens only attempts to fetch this information when the pop-up is displayed. Therefore it might happen that:
In the case you are not connected to TFS, or are connected to the wrong Team Project Collection, you'll get a message when trying to see the details popup for the work items indicators. If that happens to you, you will need connect to the Team Project Collection. Of course this will probably close your solution, which you will have to re-open, and then things will work.
Note to reviewers: I'm installing a latest RC drop to make a screen copy with the right color for the messageWhat happens if you cannot access some of the work items?
If you are not allowed to access some or all of the work items (or they don't exist), the popup will display information for the work items that could be retrieved and a message informing you that not all of the expected work items could be retrieved.
As always, we are interested in hearing your feedback on this feature.
Please try it out, and let us know.
Today we are releasing Visual Studio 2013 and Team Foundation Server 2013 Update 3.
You’ll find a complete list of download links in the release notes.
This is a “go-live” release and is expected to be the last preview before Update 3 is released. It will be supported in production, can be used to upgrade production environments and will support upgrades to the final version when it is available. We expect the final release to be within the next month or two.
There is quite a lot of stuff in VS 2013 Update 3. You can read about a lot of the detail on the Visual Studio blog or in the release notes I referenced above. I’ll call out a couple of the things that I’m particularly passionate about:
CodeLens support for Git – In Update 3, we’ve added CodeLens support for projects using Git, in addition to those using Team Foundation Version Control. CodeLens for Git works against the local Git repo and, as such, works whether you are using an onprem TFS server, VS Online, another Git service (like GitHub) or are offline completely. Next up on the CodeLens slate (not in Update 3 though), is support for CodeLens with TFVC on VS Online. Read more here.
Mixed Case Menus – I know I’m going to get some feedback on this one :) This is a long standing request by a vocal portion of the VS user base since VS 2012 to change the “ALL CAPS” menus. In VS 2013 Update 3, we have added a Tools –> Options setting to control whether you see ALL CAPS or Mixed Case. The default is still ALL CAPS but, if you change it, it will persist across upgrades and will roam across your IDE instances using the VS Online roaming settings feature (if you log into VS so it knows who you are). For grins, I’ve copied the DECLINED User Voice suggestion from 2 years ago. I guess we can “undecline” it now :)
In Team Foundation Server 2013 Update 3, we’ve also included some nice enhancements.
Test Plan and Suite customization – We’ve modified test plans and suites to be backed by work items so you can use the same customization techniques – adding fields, designing forms, etc. It also means you can query them like work items and you have versioning/history of them.
Release Management support for PowerShell DSC and Chef – The TFS release management solution now support writing deployment scripts in PowerShell DSC (Desired State Configuration) or in Chef. Among other things, this means we now have first class support for non-Windows platforms.
Some nice usability fixes – We’ve tried to slip in some nice customer driven TFS usability fixes into Update 3. A couple of the top ones are:
Looking forward to your feedback. We’ve already started making progress on Update 4 so expect to hear more from me in the next month or so on the kinds of additional enhancements you can expect.
The NuGet packages for ASP.NET MVC 5.2, ASP.NET Web API 2.2 and ASP.NET Web Pages 3.2 are now live on the NuGet gallery!
Download this release
You can install or update the NuGet packages for ASP.NET MVC 5.2, ASP.NET Web API 2.2 and ASP.NET Web Pages 3.2 using the NuGet Package Manager Console, with the following commands:
Prerequisites for this release
What’s in this release?
This release primarily includes great new features for Web API OData v4 as summarized below but has bug fixes and minor features that bring in a lot more goodness to MVC, Web API, and Web Pages:
ASP.NET MVC 5.2
ASP.NET Web API 2.2
ASP.NET Web Pages 3.2
You can find a complete listing of the features and fixes included in this release by referring to the corresponding release notes:
Tutorials and other information about this release are available from the ASP.NET web site (http://www.asp.net).
Questions and feedback
You can submit questions related to this release on the ASP.NET forums (MVC, Web API, Web Pages).Please submit any issues you encounter and feature suggestions for future releases on our CodePlex site.
Thanks and enjoy!
I haven’t got too excited for a while, but I believe that this will be immense. We can hopefully eliminate much of the heavy lifting associated with deploying machine learning in modern data driven applications. Have a read about what is in preview at the moment, but is already starting to be used by some customers. http://blogs.technet.com/b/microsoft_blog/archive/2014/06/16/microsoft-azure-machine-learning-combines-power-of-comprehensive-machine-learning-with-benefits-of-cloud.aspx
Game developers build the apps that hundreds of millions of users play every day across a wide variety of devices, from Xbox and Windows to iOS, Android and the Web. Games are the most popular application type on every major mobile platform, and Windows has long been a great home for desktop gaming. For developers, Visual Studio has been one of the most heavily used tools for game development across the industry, used by big game studios and indie developers alike.
Over the last 10 years, the Unity cross-platform game engine has grown to become a widely used rendering engine and tool for game developers targeting desktop, consoles, mobile devices and the web, with over 2 million developers now using Unity for game development. Unity offers great support for targeting or porting to Windows, across Windows desktop, Windows Store and Windows Phone.
Today, I'm pleased to announce that we are acquiring SyntaxTree, the developers of the UnityVS plugin for Visual Studio.
UnityVS enables Unity developers to take advantage of the productivity of Visual Studio to author, browse and debug the code for their Unity applications. Already today, dozens of the biggest names in game development rely on Visual Studio and the UnityVS plugin.
With this acquisition, we have the opportunity to integrate this support for Unity even more deeply into Visual Studio, and to continue to push forward Visual Studio's support for game developers. Microsoft will also make the existing UnityVS plugin available for free on our download site shortly.
In today's mobile-first, cloud-first world, Visual Studio provides a great development environment for game developers targeting the breadth of mobile devices, and connecting to the rich services platforms in Azure.
I am excited about our opportunity to continue to push game development with Visual Studio forward with the help of the SyntaxTree team.
Software-Defined Networking with Windows Server and System Centre Jump Start
Free online event with live Q&A with the WAP team: http://aka.ms/WAPIaaS
Two half-days – Wednesday July 16th & Thursday July 17th – 9am-1pm PST
IT Pros, you know that enterprises desire the flexibility and affordability of the cloud, and service providers want the ability to support more enterprise customers. Join us for an exploration of Windows Azure Pack's (WAP's) infrastructure services (IaaS), which bring Microsoft Azure technologies to your data centre (on your hardware) and build on the power of Windows Server and System Centre to deliver an enterprise-class, cost-effective solution for self-service, multitenant cloud infrastructure and application services.
Join Microsoft’s leading experts as they focus on the infrastructure services from WAP, including self-service and automation of virtual machine roles, virtual networking, clouds, plans, and more. See helpful demos, and hear examples that will help speed up your journey to the cloud. Bring your questions for the live Q&A!
Register here: http://aka.ms/WAPIaaS
Our first live Microsoft Virtual Academy event on July 14th, Microsoft Cloud Day 2014 with Q&A from Mark Russinovich where registrants will have an opportunity to:
· Hear the latest from Azure experts and startups at the recent Azure User Group summer conference in London. Learn how to get the most from Azure features and hear about Azure Machine Learning. Content made available online and on-demand for all registrants.
· Meet Mark “Live and Unplugged”: Mark will be joining us for a 45 minute video chat + live Q&A session with developers in the community.
· Receive live instruction and practical tips to get started with Azure: I’ll be running a “how to get started on Azure for free” session that includes how to build websites and mobile services in the cloud and how to scale with cloud services
This is a rare opportunity for developers and IT Pros around the world to hear from Mark live in an informal “developer to developer” chat and ask their questions about Azure.
Register for this online digital event here: http://aka.ms/msclouddayOutline: PART 1: Microsoft Cloud day 2014 on demand (video stream)
Event registrants will get early access to the content on demand as soon as it is published (in the next week).
Keynote: Rise of the Humans- Regaining Control in the Digital Age.
Dave Coplin, Chief Envisioning Officer, Microsoft
Using Recommendations at Scale in the Cloud: Countdown to AzureML
Richard Conway, Director of Product Development, Elastacloud & Microsoft MVP
Scaling your mobile and Windows applications with Azure Notification Hubs
Beat Schwegler, Director of Cloud Evangelism, Microsoft
Building Internet of Things applications with Azure and Orleans
Richard Astbury, Microsoft MVP for Azure, Senior Consultant – Two10Degrees
Presentations from Startups:
Presentations from Startups:
· 3:00PM BST: Get Started with Azure: for newcomers to the platform.
o Build Websites in the Cloud
o Build Mobile Services
o Build Cloud Services
· 4:00 BST: Meet the Users
· 4:15PM BST: Meet Mark Russinovich
o Q&A with Mark and Azure Experts
· 5:00PM BST: Close
Planky == @plankytronixx -- GBR257
Initial update - 7/2/2014 15:00 UTC
Application Insights APM service is experiencing service degradation, which can potentially cause APM data latency for some of the customers. DevOps are engaged and actively working on this issue. We will post an update by 18:00 UTC.
We apologize for any inconvenience.
Application Insights Service Delivery Team
Big data is the buzz of the day, many talk about it but few have done anything with the technology. In my role as a Solution Architect with the Data Insights Center of Excellence team at Microsoft I have been involved in several projects where we have used big data technologies to solve business problems.
Part of the role is also to be involved in spreading the gained knowledge to the larger community. I have been involved in the creation of a white paper on big data patterns. This work is something that has been driven out of our Patterns & Practices team and hopefully it contains useful information to everyone that is considering a big data solution. You can find the paper here http://aka.ms/pnp-bigdata-guidance
MTM provides the ability to add/view tags on lab environment machines which helps in associating interesting information with the machine. You can add that using the following Ux in MTM.
One of the internal customer asked me that he wants to query these tags programmatically. Here are the steps that you should follow to query it programmatically.
# Define parameters
$tfsCollectionUrl = New-Object System.URI("http://myserver/tfs/defaultcollection");
$projectName = "myproject";
$environmentName = "myEnvironment";
# Load Client Assembly
[Reflection.Assembly]::Load(“Microsoft.TeamFoundation.Client, Version=18.104.22.168, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”);
[Reflection.Assembly]::Load(“Microsoft.TeamFoundation.Common, Version=22.214.171.124, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”);
[Reflection.Assembly]::Load(“Microsoft.TeamFoundation.Lab.Client, Version=126.96.36.199, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”);
[Reflection.Assembly]::Load(“Microsoft.TeamFoundation.Lab.Common, Version=188.8.131.52, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”);
# Connect to tfs
$tfsCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsCollectionUrl);
$labService = $tfsCollection.GetService([Microsoft.TeamFoundation.Lab.Client.LabService]);
# Query for environments
$labEnvironmentQuerySpec = New-Object Microsoft.TeamFoundation.Lab.Client.LabEnvironmentQuerySpec;
$labEnvironmentQuerySpec.Project = $projectName;
$labEnvironmentQuerySpec.Disposition = [Microsoft.TeamFoundation.Lab.Client.LabEnvironmentDisposition]::Active;
$labEnvironments = $labService.QueryLabEnvironments($labEnvironmentQuerySpec);
foreach ($environment in $labEnvironments)
$envName = $environment.Name;
if ($envName -eq $environmentName)
foreach ($labSystem in $environment.LabSystems)
foreach ($property in $labSystem.CustomProperties)
Write-Host $property.Key -> $property.Value;
# You can query OS info as well.
$extendedInfo = $labSystem.ExtendedInfo;
$osProfile = $extendedInfo.OSProfile;
Write-Host $labSystem.DisplayName :: GuestOS -> $extendedInfo.GuestOperatingSystem;
Unser Education Booklet gibt es jetzt zum kostenlosen Download! Microsoft möchte durch seine Bildungstechnologien künftige Generationen optimal auf ihre spätere berufliche Zukunft vorbereiten und bessere Chancen auf den sich stetig wandelnden Arbeitsmärkten eröffnen. Das Booklet gibt Ihnen einen Überblick, welchen Beitrag Microsoft zu einer nachhaltigen Bildungslandschaft leistet und welche Angebote im Microsoft Portfolio speziell für Lehrer, Schüler, Schulleitung und Verwaltung bereitstehen. Um langfristig dazu beizutragen, dass gute Bildung allen zugänglich ist unterstützt Microsoft Schulleiter bei der Transformation zur innovativen Schule und der Implementierung einer digitalen Infrastruktur. Als Unterstützung für Lehrer beim Einsatz von neuen Medien im Unterricht gibt es die Microsoft IT Academy und zahlreiche App-Empfehlungen. Office 365 bietet als Programm zur Kommunikation und Kollaboration ganz neue Möglichkeiten mit dem eigenen Device von überallher zusammen zu arbeiten. Noch mehr über die breite Palette an Programmen, Produkten und Initiativen von Microsoft Deutschland im Bildungsbereich erfahren Sie im kompletten Education Booklet, das Ihnen im Anhang zum Download zur Verfügung steht. Viel Spaß beim digitalen Durchblättern!
A customer liaison asked for assistance in debugging why Internet Explorer frequently stops responding at their customer's site. "We have tried a number of things like clearning the temporary Internet files, disabling add-ons, and resetting Internet Explorer settings. Please let me know if you can provide guidance based on the dump files provided below to indicate what could be causing Internet Explorer to hang here."
The dump file showed 23 threads, and all of them seemed to be normal, except for one which looked like this:ntdll!KiFastSystemCallRet ntdll!ZwOpenFile+0xc kernel32!BaseDllOpenIniFileOnDisk+0x1ec kernel32!BaseDllReadWriteIniFileOnDisk+0x22 kernel32!BaseDllReadWriteIniFile+0x154 kernel32!GetPrivateProfileStringW+0x35 kernel32!GetPrivateProfileSectionNamesW+0x18 shell32!CPrivateProfile::_GetPrivateProfileAlloc+0x9e shell32!CPrivateProfile::GetSectionNames+0xa0 ieframe!CINIPropSetStg::Load+0x74 ieframe!CInternetShortcutPropertyStore::_CreateStoreFromFile+0x4e ieframe!CInternetShortcutPropertyStore::Load+0x22 ieframe!CInternetShortcut::LoadFromFileW+0x39 ieframe!CInternetShortcut::Initialize+0x17 shell32!InitializeFileHandlerWithFile+0x2d shell32!CFileSysItemString::HandlerCreateInstance+0x29a shell32!CFileSysItemString::LoadHandler+0x91 shell32!CFSFolder::_CreatePerInstanceDefExtIcon+0x7d shell32!CFSFolder::_CreateDefExtIcon+0xe9 shell32!CFSFolder::s_GetExtractIcon+0x1b shell32!CFSFolder::_BindHandler+0x209 shell32!CFSFolder::GetUIObjectOf+0x21 shell32!GetExtractIconW+0x31 shell32!_GetILIndexFromItem+0x52 shell32!SHMapPIDLToSystemImageListIndex+0x37 ieframe!OrderItem_GetSystemImageListIndex+0x187 ieframe!CSFToolbar::_GetBitmap+0x2f ieframe!CSFToolbar::_OnGetDispInfo+0x34 ieframe!CSFToolbar::_OnNotify+0x8e ieframe!CISFBand::_OnNotify+0x2c ieframe!CSFToolbar::OnWinEvent+0x89 ieframe!_FwdWinEvent+0x1d ieframe!CBandSite::_SendToToolband+0x44 ieframe!CInternetToolbar::_OnNotify+0x2e ieframe!CInternetToolbar::SizableWndProc+0x223 user32!InternalCallWinProc+0x23 user32!UserCallWinProcCheckWow+0x14b user32!SendMessageWorker+0x4b7 user32!SendMessageW+0x7c comctl32!CCSendNotify+0xbfb comctl32!SendNotifyEx+0x63 comctl32!CReBar::_WndProc+0x24f comctl32!CReBar::s_WndProc+0x2c user32!InternalCallWinProc+0x23 user32!UserCallWinProcCheckWow+0x14b user32!CallWindowProcAorW+0x97 user32!CallWindowProcW+0x1b comctl32!CallOriginalWndProc+0x1a comctl32!CallNextSubclassProc+0x3d comctl32!DefSubclassProc+0x46 ieframe!CInternetToolbar::CITBandSite::s_RebarSubclassWndProc+0x5a comctl32!CallNextSubclassProc+0x3d comctl32!MasterSubclassProc+0x54 user32!InternalCallWinProc+0x23 user32!UserCallWinProcCheckWow+0x14b user32!SendMessageWorker+0x4b7 user32!SendMessageW+0x7c comctl32!CCSendNotify+0xbfb comctl32!CToolbar::TBGetItem+0x2c comctl32!CToolbar::DrawButton+0x5e9 comctl32!CToolbar::DrawToolbarH+0x1ad comctl32!CToolbar::TBPaintImpl+0xd5 comctl32!CToolbar::TBPaint+0x18c comctl32!CToolbar::ToolbarWndProc+0xd2e comctl32!CToolbar::s_ToolbarWndProc+0x9b user32!InternalCallWinProc+0x23 user32!UserCallWinProcCheckWow+0x14b user32!CallWindowProcAorW+0x97 user32!CallWindowProcW+0x1b comctl32!CallOriginalWndProc+0x1a comctl32!CallNextSubclassProc+0x3d comctl32!DefSubclassProc+0x46 ieframe!CSFToolbar::_DefWindowProc+0xb8 ieframe!CISFBand::_DefWindowProc+0x75 ieframe!CNotifySubclassWndProc::s_SubclassWndProc+0xb4 comctl32!CallNextSubclassProc+0x3d comctl32!MasterSubclassProc+0x54 user32!InternalCallWinProc+0x23 user32!UserCallWinProcCheckWow+0x14b user32!DispatchClientMessage+0xda user32!__fnDWORD+0x24 ntdll!KiUserCallbackDispatcher+0x2e user32!NtUserDispatchMessage+0xc user32!DispatchMessageWorker+0x38c user32!DispatchMessageW+0xf ieframe!CTabWindow::_TabWindowThreadProc+0x280 kernel32!BaseThreadInitThunk+0xe ntdll!__RtlUserThreadStart+0x23 ntdll!_RtlUserThreadStart+0x1b
(Remember, you can get symbols for operating system binaries.)
General debugging tip: If you see a really huge stack, that's a good sign that something interesting is going on. Boring stacks tend to be small.
Furthermore, frames near the bottom of the stack tend to describe what the purpose of the thread is, whereas frames near the top of the stack tend to describe what the thread is actually doing right now. (Exercise: Why?)
In this case, we see a stack that was probably created to manage a tab window (CTabWindow::_TabWindowThreadProc) and it's currently stuck in an I/O operation. You can then look at the file name to see what file is stuck.0:001> du 04cd6aac 04cd6aac "\\server\share\abcdefg\Favorites\Mail.url"
It looks like this user stored their Favorites on a network share that is not responding.
The customer liaison replied,Thanks a lot for this information. Can you help me understand how do we tell that the dump indicates this file I/O is causing IE to hang? Having this information would help me better explain this to the customer.
I wasn't sure how to respond to this. If you see a function with the words File and one of Open, Read, or Write in its name, there's a good chance that it opens, reads, or writes a file. You probably want to look to see what file is being opened, read from, or written to, because that may give a clue why the I/O operation is stuck.
It turns out that this customer redirected the user's Favorites to a network location. The Internet Explorer folks tell me that this is not an explicitly supported scenario in the sense that they did not do any tuning to make this scenario work well, and frequent hangs are consequently not unexpected. If you redirect the Favorites to a network location, then you get what you get. And if that server frequently becomes unavailable, then what you get often sucks.