You may encounter an issue with SharePoint 2010 document libraries that prevents users from check-out or edit documents in the document library. The issue occurs when you break the security inheritance of the document library. Regardless of what permission the users have on the document library, they will not be able to check-out documents or edit them unless they have at least a "Read" Permission on the parent web. Here's how to reproduce this issue...
Note: Once you break the inheritence of any item, list or document library, and you give the user certain permission on that object, SharePoint assigns that user automatically a "Limited Access" permission on the parent web to ensure navigability to that object.
Diagnosing this issue shows that IE send a SOAP message to the SharePoint server, which internally generates "Access Denied" exception without returning any appropriate response to the caller. There is an IE Add-in named "OpenDocuments class" that generates the SOAP request and sends it back to SharePoint which causes the unexpected exception to be generated. Tests with different browsers may produce different results.
This issue occurs only with Enterprise Wiki and Publishing templates of SharePoint Server 2010 and was not reproduced on other templates like "team site". We expect to see a fix in Service pack 1 or later for this issue.
This is a small issue that I faced the other day and wasted several hours of my time. The scenario is rather simple. You have a list item and you already have an attachment to this item. What you want to do is to read this item attachment in a workflow or a web part using code.
So you start off by writing the following code:
SPFile spFile = Item.Web.GetFile(Item.Attachments.UrlPrefix + Item.Attachments[0]);
byte[] binFile = spFile.OpenBinary();
Simple right? well you will eventually get an SPException in the OpenBinary function call and it will report that it cannot open the file!!!
So after several hours (and several cups of coffee) I was able to perform the needed functionality but by accessing the SPFile object using the folder collection and not the URL. This is how.
SPFolder folder = Item.Web.Folders["Lists"].SubFolders[Item.List.Title].SubFolders["Attachments"].SubFolders[Item.ID.ToString()];
SPFile spFile = folder.Files[Item.Attachments[0]];
BTW this happened on SharePoint 2010 and as far as I remember the old code used to work with no problems on SharePoint 2007.
Today I had for specific reasons to install the older BizTalk 2006 R2 on a Windows 2008 R2 server. Now although this leads to an unsupported scenario; it is still valid for development environments (as in the case I encountered). Another issue that complicated the problem is that this server already had Visual Studio 2010 with .NET framework 4.0 installed on it.
I had already also installed SQL server 2008 on this server. So I started to follow the BizTalk 2009 installation guide. It went actually very smooth (to my surprise). The issues or notes I faced were as follows.
1- First the prerequisites file it downloaded was kind of strange for me. It downloaded a file called “BTSRedistVistaEn64.cab”. So this is a file that should be directed to Vista and not 2008 R2. But it was installed with no problems.
2- The MSDTC have to be configured as per the BizTalk 2009 guide to get it BizTalk to be configured properly. This is done as below image:
3- Since I also had SQL express installed on the same box I had to disable it to make sure it does not interfere with the configuration.
4- I installed VS 2005 with no noticeable issues.
5- I then installed BizTalk and had no issues there.
6- The main problem I faced was related to ENTSSO configuration. First I could not get it to start configuring it as it reported that the SSODB does not exist on the SQL server! So I am thinking; but I want to create it. Why does it need this DB although it will be created? After several hours of research I found the root cause. The problem was related to that the ENTSSO was using a wrong set of assemblies since its SQL communication COM+ component was registered using the REGASM utility of .NET4.0. The resolution was to re-register this assembly using the .NET 2.0 frameowork utility. To do so.
a. Open a command prompt.
b. Go to C:\Windows\Microsoft.NET\Framework64\v2.0.50727
c. regasm “C:\Program Files\Common Files\Enterprise Single Sign-On\win32\ssosql.dll”
d. regasm “C:\Program Files\Common Files\Enterprise Single Sign-On\ssosql.dll”
7- I also needed to disable the shared memory protocol on the SQL server.
8- For the BAM I was not yet able to get it to work or configured as it reported that the SSAS is not a supported version. I will do further investigation on how to configure BAM on this configuration.
In this post I will start talking about using the UPS and how we can use that to connect to two sources of user profiles data. Please refer to the previous post on how to configure the UPS.
So lets first describe the scenario at hand. We have user profiles data residing in two sources, one is the Directory Service (AD for example), the other is any data source like SQL or Oracle DB. So we will use a custom Windows Communication Foundation Service to communicate with the custom data source.We will then use the SharePoint BCS to connect to this data source. The UPS will have to consider this new source of data while synchronizing the user profiles.
I will list here all the steps we are going to implement along the way. Although these steps are going to be separated between several blogs.
In this post I will talk about the development and deployment of the WCF service. As an example I will develop a WCF service that connects to a SQL database but you can do the same to connect to any sort of data source including Oracle. Now this assumes that a table is created and populated with employee data. The table can be created using the following SQL query.
USE [EmployeeDB]
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Employees](
[ID] [decimal](18, 0) NOT NULL,
[Salary] [decimal](18, 0) NOT NULL,
[FullName] [nvarchar](max) NOT NULL,
[Degree] [nchar](10) NOT NULL,
[MainDepartment] [nchar](50) NOT NULL,
[SubDepartment] [nchar](50) NOT NULL,
CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
I will be using the ID as the linking property later between both user profiles sources.
Step 1: Left click on "File (menu item)" in "Microsoft Visual Studio (Administrator)"
Step 2: Left click on "Project... (menu item)" in "&New"
Step 3: Left click on "WCF Service Application (list item)" in "New Project"
Step 4: Left click on "Name: (editable text)" in "New Project"
Step 5: Keyboard input in "New Project" [Backspace Home ... Alt-Shift-Tab]
Step 6: User left click on "OK (push button)" in "New Project"
Step 7: User left click on "IService1.cs (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 8: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)" [F2]
Step 9: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 10: User left click on "Yes (push button)" in "Microsoft Visual Studio"
Step 11: User left click on "Service1.svc (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 12: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)" [F2]
Step 13: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 14: User left click on "Character 26 (editable text)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 15: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 16: User left double click on "Web.config (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 17: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)" [... Ctrl-F]
Step 18: User keyboard input in "Find and Replace" [... Enter Esc]
Step 19: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 20: User keyboard input in "Microsoft Visual Studio" [Enter]
Step 21: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 22: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 1: User left click on "Server Explorer (menu item)" in "&View"
Step 2: User left click on "Connect to Database... (push button)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 3: User keyboard input in "Add Connection" [...]
Step 4: User left click on "Use SQL Server Authentication (radio button)" in "Add Connection"
Step 5: User left click on "User name: (editable text)" in "Add Connection"
Step 6: User keyboard input in "Add Connection" [... Tab]
Step 7: User keyboard input in "Add Connection" [...]
Step 8: User left click on "Save my password (check box)" in "Add Connection"
Step 9: User left click on "Open (push button)" in "Add Connection"
Step 10: User left click on "EmployeeDB (list item)"
Step 11: User left click on "Test Connection (push button)" in "Add Connection"
Step 12: User left click on "OK (push button)" in "Microsoft Visual Studio"
Step 13: User left click on "OK (push button)" in "Add Connection"
Step 1: User right click on "EmployeeWcfService (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 2: User left click on "New Item... (menu item)" in "A&dd"
Step 3: User left click on "Data (outline item)" in "Add New Item - EmployeeWcfService"
Step 4: User left click on "DataSet (list item)" in "Add New Item - EmployeeWcfService"
Step 5: User left click on "Name: (editable text)" in "Add New Item - EmployeeWcfService"
Step 6: User keyboard input in "Add New Item - EmployeeWcfService" [Backspace Home ...]
Step 7: User left click on "Add (push button)" in "Add New Item - EmployeeWcfService"
Step 8: User left click on "sp2010.EmployeeDB.dbo (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 9: User left click on "Tables (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 10: User mouse drag start on "Employees (outline item)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 11: User mouse drag end in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 12: User left click on "Row 0 (row)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 13: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)" [... Alt-Shift-Ctrl Alt-Shift-Tab]
Step 14: User left click on "SELECT ID, Salary, FullName, Degree, MainDepartment, SubDepartment FROM dbo.Employees (tool tip)"
Step 15: User left click on "CommandText (row)" in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
Step 16: User left click on "row 0, column 7 (cell)" in "Query Builder"
Step 17: User keyboard input in "Query Builder" [... Enter]
Step 18: User left click on "Execute Query (push button)" in "Query Builder"
Step 19: User keyboard input in "Query Parameters" [... Enter]
Step 20: User left click on "OK (push button)" in "Query Builder"
Step 21: User left click on "Yes (push button)" in "Microsoft Visual Studio"
Step 22: User left click in "EmployeeWcfService - Microsoft Visual Studio (Administrator)"
In the file “IEmployeeService” add the employee data contract as follows:
[DataContract]
public class Employee
{
[DataMember]
public string ID;
public decimal Salary;
public string FullName;
public string Degree;
public string MainDept;
public string SubDept;
}
And change the service contract to be as follows:
[ServiceContract]
public interface IEmployeeService
[OperationContract]
Employee GetEmployeeData(string EmpID);
In the file “EmployeeService.svc.cs” change the service implementation as follows:
public class EmployeeService : IEmployeeService
public Employee GetEmployeeData(string EmpID)
try
decimal EmpIdParam = decimal.Parse(EmpID);
Employee emp = new Employee();
EmployeeDataSet.EmployeesDataTable dt=new EmployeeDataSet.EmployeesDataTable();
EmployeesTableAdapter ta = new EmployeesTableAdapter();
ta.Fill(dt, EmpIdParam);
if (dt.Rows.Count != 1) return null;
emp.ID = dt.Rows[0]["ID"].ToString();
emp.Salary = decimal.Parse(dt.Rows[0]["Salary"].ToString());
emp.FullName = dt.Rows[0]["FullName"].ToString();
emp.Degree = dt.Rows[0]["Degree"].ToString();
emp.MainDept = dt.Rows[0]["MainDepartment"].ToString();
emp.SubDept = dt.Rows[0]["SubDepartment"].ToString();
return emp;
catch
finally
return null;
This completes the service implementation now we will deploy the service.
We now deploy the developed WCF service to the IIS.
Step 2: User left click on "Publish... (menu item)" in "Project"
Step 3: User left click on "Publish (push button)" in "Publish Web"
Step 4: User keyboard input in "EmployeeWcfService - Microsoft Visual Studio (Administrator)" [... Alt-Shift-Tab]
Now this completes the WCF development and deployment and it is ready for use. In the next post I will show you how to connect to it using the SharePoint BCS.
In the previous post I described the exact scenario I am trying to implement and detailed how to create the WCF service and deploy it. In this post I will continue by describing how can we prepare this WCF to be consumed from the User Profiles Synchronization service using BCS.
Step 1: User left click on "Start (push button)" in "Start"
Step 2: User left click on "SharePoint 2010 Central Administration (menu item)" in "Start menu"
Step 3: User left click on "Manage web applications (editable text)" in "Home - Central Administration - Windows Internet Explorer"
Step 4: User left click on "Web Applications Tab 2 of 2. (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 5: User keyboard input in "Web Applications Management - Windows Internet Explorer" [... Alt-Shift-Tab]
Step 6: User left click on "Create New Web Application (dialog)" in "Web Applications Management - Windows Internet Explorer"
Step 7: User left click on "Port (editable text)" in "Web Applications Management - Windows Internet Explorer"
Step 8: User keyboard input in "Web Applications Management - Windows Internet Explorer"
Step 9: User left click on "Create New Web Application (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 10: User left click on "Create New Web Application (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 11: User left click on "Database Name (editable text)" in "Web Applications Management - Windows Internet Explorer"
Step 12: User keyboard input in "Web Applications Management - Windows Internet Explorer" [... Shift-End Delete ... Backspace ...]
Step 13: User left click on "Create New Web Application (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 14: User left click on "Create New Web Application (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 15: User left click on "Create New Web Application (pane)" in "Web Applications Management - Windows Internet Explorer"
Step 16: User left click on "OK (push button)" in "Web Applications Management - Windows Internet Explorer"
Step 17: User left click on "Title (editable text)" in "Create Site Collection - Windows Internet Explorer"
Step 18: User keyboard input in "Create Site Collection - Windows Internet Explorer" [...]
Step 19: User left click on "Create Site Collection (pane)" in "Create Site Collection - Windows Internet Explorer"
Step 20: User left click on "Blank Site (list item)" in "Create Site Collection - Windows Internet Explorer"
Step 21: User left click in "Create Site Collection - Windows Internet Explorer"
Step 22: User left click in "Create Site Collection - Windows Internet Explorer"
Step 23: User keyboard input in "Create Site Collection - Windows Internet Explorer" [...]
Step 24: User left click on "Create Site Collection (pane)" in "Create Site Collection - Windows Internet Explorer"
Step 25: User left click on "OK (push button)" in "Create Site Collection - Windows Internet Explorer"
Step 26: User left click on "OK (push button)" in "Top-Level Site Successfully Created - Windows Internet Explorer"
Step 1: User left click on "Manage service applications (editable text)" in "Home - Central Administration - Windows Internet Explorer"
Step 2: User left click on "Business Data Connectivity Service (editable text)" in "Manage Service Applications - Windows Internet Explorer"
Step 3: User left click on "Configure (push button)" in "View External Content Types - Windows Internet Explorer"
Step 4: User keyboard input in "View External Content Types - Windows Internet Explorer" [...]
Step 5: User left click on "Configure External Content Type Profile Page Host (pane)" in "View External Content Types - Windows Internet Explorer"
Step 6: User left click on "OK (push button)" in "View External Content Types - Windows Internet Explorer"
Step 2: User left click on "Microsoft SharePoint Designer 2010 (menu item)" in "Start menu"
Step 3: User left click on "Open Site (push button)" in "Microsoft SharePoint Designer"
Step 4: User keyboard input in "Open Site" [... Home ... End ...]
Step 5: User left click on "Open (push button)" in "Open Site"
Step 6: User left click on "External Content Types (push button)" in "http://intranet.contoso.net:4444"
Step 7: User left click on "External Content Type (push button)" in "http://intranet.contoso.net:4444"
Step 8: User left click on "Name (link)" in "http://intranet.contoso.net:4444"
Step 9: User keyboard input in "http://intranet.contoso.net:4444" [... Tab]
Step 10: User left click on "Minimize the Ribbon (push button)" in "http://intranet.contoso.net:4444"
Step 11: User left click on "External System (link)" in "http://intranet.contoso.net:4444"
Step 12: User left click on "Add Connection (push button)" in "http://intranet.contoso.net:4444"
Step 13: User left click on "Data Source Type (text)" in "External Data Source Type Selection"
Step 14: User left click on "WCF Service (list item)"
Step 15: User left click on "OK (push button)" in "External Data Source Type Selection"
Step 16: User keyboard input in "WCF Connection" [... Alt-Shift-Tab ... Ctrl-V]
Step 17: User left click on "Open (push button)" in "WCF Connection"
Step 18: User left click on "Metadata Exchange (list item)"
Step 19: User left click on "Service Endpoint URL: (editable text)" in "WCF Connection"
Step 20: User keyboard input in "WCF Connection"
Step 21: User left click on "OK (push button)" in "WCF Connection"
Step 22: User left click on "http://sp2010.dev.mcs.local:8080/EmployeeWCFService/EmployeeService.svc/mex (outline item)" in "http://intranet.contoso.net:4444"
Step 23: User left click on "Web Methods (outline item)" in "http://intranet.contoso.net:4444"
Step 24: User left click on "GetEmployeeData (text)" in "http://intranet.contoso.net:4444"
Step 25: User right click on "GetEmployeeData (text)" in "http://intranet.contoso.net:4444"
Step 26: User left click on "New Read Item Operation (menu item)"
Step 27: User left click on "Next > (push button)" in "Read Item"
Step 28: User keyboard input in "Read Item" [... Alt-Shift-Tab]
Step 29: User left click on "Next > (push button)" in "Read Item"
Step 30: User left click on "Map to Identifier: (check box)" in "Read Item"
Step 31: User left click on "Map to Identifier: (check box)" in "Read Item"
Step 32: User left click on "ID (text)" in "Read Item"
Step 33: User left click on "Map to Identifier: (check box)" in "Read Item"
Step 34: User left click on "< Back (push button)" in "Read Item"
Step 44: User keyboard input in "http://intranet.contoso.net:4444" [... Alt-Shift-Tab]
Step 35: User left click on "Map to Identifier: (check box)" in "Read Item"
Step 36: User left click on "Open (push button)" in "Read Item"
Step 37: User left click on "ID (list item)"
Step 38: User left click on "Next > (push button)" in "Read Item"
Step 39: User left click on "Finish (push button)" in "Read Item"
Step 40: User left click on "EmployeeWCFBCS (push button)" in "http://intranet.contoso.net:4444"
Step 41: User left click on "Save (push button)" in "http://intranet.contoso.net:4444"
Step 42: User left click on "Minimize the Ribbon (push button)" in "http://intranet.contoso.net:4444"
Step 43: User left click on "Create Profile Page (push button)" in "http://intranet.contoso.net:4444"
Step 3: User left click on "Open Menu (graphic)" in "View External Content Types - Windows Internet Explorer"
Step 4: User left click on "Set Permissions (link)" in "View External Content Types - Windows Internet Explorer"
Step 5: User keyboard input in "View External Content Types - Windows Internet Explorer" [...]
Step 6: User left click on "Check Names (graphic)" in "View External Content Types - Windows Internet Explorer"
Step 7: User left click on "Add (push button)" in "View External Content Types - Windows Internet Explorer"
Step 8: User left click on "Set Object Permissions (pane)" in "View External Content Types - Windows Internet Explorer"
Step 9: User left click on "Set Object Permissions (pane)" in "View External Content Types - Windows Internet Explorer"
Step 10: User left click on "Set Object Permissions (pane)" in "View External Content Types - Windows Internet Explorer"
Step 11: User left click on "Set Object Permissions (pane)" in "View External Content Types - Windows Internet Explorer"
Step 12: User left click on "OK (push button)" in "View External Content Types - Windows Internet Explorer"
Step 13: User left click on "View External Content Types (pane)" in "View External Content Types - Windows Internet Explorer"
Step 14: User left click on "http://intranet.contoso.net:4444/_bdc/http___intranet_contoso_net_4444/EmployeeWCFBCS_1.aspx?ID={0} (editable text)" in "View External Content Types - Windows Internet Explorer"
Step 15: User left click on "Address (editable text)" in "EmployeeWCFBCS - Windows Internet Explorer"
Step 16: User keyboard input in "EmployeeWCFBCS - Windows Internet Explorer" [End Backspace Backspace Backspace ... Enter]
Step 17: User keyboard input in "EmployeeWCFBCS - Windows Internet Explorer" [... Alt-Tab]
So Now the BCS model is deployed and working as expected. The next step is to configure the UPS connections.
In the previous post I showed you how to deploy the BCS model for the Employee WCF service. In this post we will continue our scenario by adding the synchronization sources for the AD and the BCS WCF service.
This step is needed to allow the UPS to link the AD profile to the proper WCF profile. As said before I will be using the employee ID property from the SQL database as the link property. We could have chosen any other property but this property have to be unique per a profile. We need to add the employee ID to any unused AD property.
Now you need to add the synchronization connection to the AD source from the UPS management. You need to add it and then select the appropriate OU that contains the list of all employees in the company.
The property used for linking is held in the AD field of the user home page (this is just an example). But since the SharePoint 2010 performs data validation during synchronization and this field should contain actually a URL, the default property will not work. So We need to add a custom property pointing to this AD field as a string property.
Step 1: User left click on "Manage User Properties (editable text)" in "Manage Profile Service: User Profile Service Application - Windows Internet Explorer"
Step 2: User left click on "New Property (editable text)" in "Manage User Properties - Windows Internet Explorer"
Step 3: User left click on "Add User Profile Property (pane)" in "Add User Profile Property - Windows Internet Explorer"
Step 4: User left click on "Attribute (text)" in "Add User Profile Property - Windows Internet Explorer"
Step 5: User left click on "wWWHomePage (list item)"
Step 6: User left click on "Add (push button)" in "Add User Profile Property - Windows Internet Explorer"
Step 7: User left click on "OK (push button)" in "Add User Profile Property - Windows Internet Explorer"
Now we can add the employee WCF BCS connection linking to it using the custom added profile property which is already populated in the user web page field on the AD as we already seen.
Step 1: User left click on "Create New Connection (editable text)" in "Synchronization Connections - Windows Internet Explorer"
Step 2: User left click on "Add new synchronization connection (pane)" in "Add new synchronization connection - Windows Internet Explorer"
Step 3: User left click on "Business Data Connectivity (list item)"
Step 4: User left click on "Select External Content Type (graphic)" in "Add new synchronization connection - Windows Internet Explorer"
Step 5: User left click on "http://sp2010.dev.mcs.local:8080/EmployeeWCFService/EmployeeService.svc/mex (editable text)" in "External Content Type Picker -- Webpage Dialog"
Step 6: User left click on "OK (push button)" in "External Content Type Picker -- Webpage Dialog"
Step 7: User left click on "Add new synchronization connection (pane)" in "Add new synchronization connection - Windows Internet Explorer"
Step 8: User left click on "Return items identified by this profile property: (text)" in "Add new synchronization connection - Windows Internet Explorer"
Step 9: User left click on "EmployeeIDAD (list item)"
Step 10: User left click on "OK (push button)" in "Add new synchronization connection - Windows Internet Explorer"
Now add all custom WCF properties that are needed to be added to the user profile. Remember to set the EmployeeID as aliased and indexed property as we might need to search using it later. For the remaining properties you select the options as required. The properties to be added are as follows.
Property
Is Required
Indexed
Show to
EmployeeID
R
Me
Degree
Q
Everyone
LocalFullName
MainDepartment
SubDepartment
Salary
My Manager
The final profile properties are as follows.
Now you can start the profile full synchronization and then create the appropriate synchronization schedule.
Now when we open a user profile we should see the custom properties populated as follows.
In this post I already showed how to link this to the people search center and how to search for user profiles using indexed properties. Also in this post I showed how to refine people search results using custom properties.
Microsoft Lync Server 2010 Planning Tool just released this week and available for download from Microsoft downloads here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bcd64040-40c4-4714-9e68-c649785cc43a, and readme file can be downloaded from here: http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=c8ba3275-270f-4c0b-90bb-edc1d1216c2d,
The Microsoft Lync Server 2010, Planning Tool asks you a series of questions about your organization and the features that you are interested in. The planning tool will then use your answers to recommend a topology based on the tested Microsoft Lync Server 2010 user model,
What’s New in the Planning Tool for Lync Server 2010?
Related Posts:
Service pack 1 for Windows 2008 R2 and Windows 7 is now RTM and released to MSDN and technet subscribers. The service pack will be available for public download on 22nd of Feb. This release adds new features for Windows 2008 R2. Major features are for Hyper-V and they are...
For developers, one major issue that this Service Pack fixes is the crash of Windows 2008 R2 on some laptops when virtualization is enabled and Hyper-V service is installed. This is due to some issues with some graphics cards and drivers.
Visit the technet Homepage for windows 2008 R2 SP1 and Windows 2008 R2 team blog here.
The Windows® Automated Installation Kit for Windows® 7 SP1 has been released.
To download the update: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=696dd665-9f76-4177-a811-39c26d3b3b34
For the online readme help: http://technet.microsoft.com/en-us/library/dd349350(WS.10).aspx
For a quick Q&A, check Michael Niehaus blog here: http://blogs.technet.com/b/mniehaus/archive/2011/02/17/windows-aik-for-windows-7-sp1-released.aspx
After configuring SQL Server database mail and testing it successfully, you could find maintenance plans unable to send e-mails although you have set the recipients correctly.
This is generally due to the setting for the default profile for database mail.
Generally, you need to do the following to configure database mail:
1. In SQL Server Management Studio, select Management, Database Mail
2. Select Configure Database Mail
3. On the Database Mail Configuration Wizard, select setup Database Mail and configure the SMTP settings
Secondly, you need to configure the default profile as follows:
3. On the Database Mail Configuration Wizard, select Manage Profile Security
4. Under Public Profiles, select Yes in the Default Profile to set the default Profile
End of last week, Microsoft released Lync Server 2010 Best Practices Analyzer and now it is available for download from this URL http://www.microsoft.com/downloads/en/details.aspx?FamilyID=030548df-0dc7-4f86-b8a9-2f5ec8de8ba5&displaylang=en and the tool documentation in this URL http://technet.microsoft.com/en-us/library/gg558584.aspx.
You can use Microsoft Lync Server 2010, Best Practices Analyzer to identify and resolve problems with your Lync Server deployment. The Lync Server 2010, Best Practices Analyzer gathers configuration information from Lync Server 2010 components. With the proper network access, the Best Practices Analyzer can examine servers running Active Directory Domain Services, Exchange Server Unified Messaging (UM), and Lync Server. You can use Best Practices Analyzer to do the following:
Best Practices Analyzer provides the following features: