Skip Ribbon Commands
- محتویات اصلی صفحه
 

 آدرس ها

 
 بایگانی
 اصطلاحات وبلاگ
 وبلاگ های به روز شده همکاران
 SharePoint Server 2007 Technical Articles
 مقالات و ویدئو های How Tos برای شرپوینت
 MOSS 2007 Best Resource Links
 Update های جدید مایکروسافت برای MOSS 2007,WSS 3.0
 Downloadable books for Office SharePoint Server 2007
 Excel Services step-by-step guides
 Microsoft White Papers for MOSS 2007
Add to Technorati Favorites
View Arash Aghajani's profile on LinkedIn
گردآوري، ترجمه و نويسنده  مطالب  : آرش آقاجاني   aghajani[dot]arash[at]Gmail[dot]com
اسفند 16
لذت وبلاگ نویسی با ابزار Windows Live Writer 2008

سلام

امروز با ابزار فوق العاده ای به نام Windows Live Writer آشنا شدم که این امکان رو به شما میده تا به راحتی مطالب وبلاگهاتون رو به صورت آفلاین بنویسید و اونهارو بر روی وبلاگهاتون منتشر کنید. این ابزار مایکروسافت امکان اتصال به انواع فراهم کننده های وبلاگها از جمله : Blogger, Typepad, WordPress, Live Space, Community Server و همچنین وبلاگهای شیرپوینتی رو به شما می دهد.

Live Writer به همراه ابزار اصلی، یکسری Plugin برای توسعه بیشتر و زیباتر مطالب وبلاگ در اختیار شما قرار می دهد. شما پس از نصب Live Writer می تونید این Plugin ها رو دانلود و به ابزار اصلی اضافه کنید! تعدادی از این پلاگین ها عبارتند از : درج کد در بدنه مطلب، درج سیلورلایت، درج تصاویر افکت دار، درج تگ های مختلف و ...

در ادامه توضیح مختصری در مورد نحوه نصب این برنامه برای شما دوستان می نویسم :

  1. شما ابتدا باید یک حساب کاربری در سایت http://live.com ایجاد کنید. یا می توانید از حساب کاربری خود در سایت مایکروسافت استفاده کنید.
  2. حال باید این برنامه رو از این آدرس دانلود و نصب کنید.(که حدود 2 مگابایت حجم دارد(
  3. در هنگام نصب این برنامه از شما سوال می شود که کدام محصولات رو تصمیم دارید که نصب کنید. شما فقط Writer رو انتخاب کنید.
  4. برای نصب Writer شما نیاز به اتصال به اینترنت دارید. به طور کلی این برنامه برای نصب Writer  نیاز به دانلود حدود 10 مگابایت اطلاعات از سایت live دارد.
  5. پس از اتمام دانلود، برنامه به صورت خودکار نصب می شود.
  6. پس از نصب کامل ، پنجره ای باز خواهد شد و از شما اطلاعات مربوط به وبلاگتان را سوال می کند. آنها را ثبت نمایید. در پایان مراحل، آدرس ذخیره تصاویر وبلاگتان پرسیده می شود که آنرا نیز ثبت کنید.
  7. اکنون شما می توانید برنامه را اجرا کرده و مطلب ویلاگتان را در صفحه اصلی برنامه Writer تایپ کنید! در پایان هم بر روی دکمه publish کلیک کنید تا مطلب شما به وبلاگتان منتقل شود. به همین راحتی!

برای دانلود Plugin های اضافی هم می تونید به این آدرس مراجعه کنید.

در زیر تصویری از صفحه اصلی این برنامه رو مشاهده می کنید. که من این پُست رو توسط Writer نوشتم و منتشر کردم!

با Live Writer از وبلاگ نویسی لذت ببرید.....

بهمن 24
SharePoint Admin Toolkit 3.0 + SPDiag Tool 1.0

هفته گذشته مایکروسافت نسخه 3 از ابزار Admin Toolkit شیرپوینت رو معرفی و ارائه کرد. این نسخه به همراه ابزار جدیدی به نام SharePoint Diagnostic Tool (SPDiag) ارائه شده است. SPDiag ابزاری است که دارای رابط کاربری جداگانه می باشد و توسط آن می توانید به راحتی به کشف خطا در سرور شیرپوینت بپردازید و از تمام اتفاقات و رویدادها Log بگیرید. همچنین این ابزار در سنجش کارایی شیرپوینت به مدیر شبکه کمک شایانی خواهد کرد و شما می توانید گزارشهایی از سیستم تهیه و آنها را در دیتابیس SQL ذخیره نمایید. از دیگر قابلیتهای برجسته این ابزار ، تولید یک شِمای کلی از فارم سرور شیرپوینت به همراه جزئیات آن و همچنین نمایش اطلاعات مربوط به سخت افزارها، نرم افزارها ، برنامه های نصب شده و همچنین توپولوژی سرور می باشد!

برای کسب اطلاعات بیشتر به آدرس زیر مراجعه کنید :

http://blogs.technet.com/tothesharepoint/archive/2009/02/05/3197739.aspx

جهت دانلود این ابزار با توجه به نسخه سرور ، از آدرسهای زیر استفاده نمایید :

موفق باشید.

آذر 12
Persian SharePoint Community

 

 

 

 

تقریباً اواسط مردادماه بود که تصمیم گرفتیم تا پایگاه و انجمنی اینترنتی برای شرپوینت و به صورت کاملاً فارسی راه اندازی کنیم. این تصمیم ما اوایل به دلیل مشغله های کاری با تاخیر روبرو شد ولی پس از گذشت چندماه بالاخره در آبان ماه این تصمیم ما جدی شد. تقریباً 20 روزی دنبال یک ابزار خوب و قوی برای این انجمن بودیم که پس از آزمایش بیش از 10 نوع ابزار مختلف، ابزار نهایی رو با رعایت حقوق مادی و معنوی آن پیاده سازی و راه اندازی کردیم. ساختار انجمن ها هم پس از بررسی تعداد زیادی از پایگاههای کاربران شرپوینتی در اینترنت تعیین و پیاده سازی شده است. این سایت توسط سرور پرسرعت و با پهنای باند و فضای بالا هاست شده.

این پایگاه صرفاً با هدف نشر، توسعه، ترویج و به اشتراک گذاری دانش کاربران فارسی زبان مایکروسافت شیرپوینت در نقاط مختلف جهان راه اندازی شده است و هیچگونه اهداف تجاری ای در این پایگاه پیگیری نخواهد شد و مانند سایر انجمن ها و گروه های کاربری شرپوینت در سراسر دنیا مدیریت می شود.

تلاش خواهیم کرد تا پایگاهی سرشار از دانش و تجربیات کاربران شرپوینتی داشته باشیم و از همه دوستان و عزیزان علاقمند به محصول مایکروسافت شیرپوینت دعوت می کنیم تا در این پایگاه عضو شوند و با سایر شرپوینترهای فارسی زبان به اشتراک دانش بپردازند.

شما با عضویت رایگان در این پایگاه ، می توانید سوال ها و مشکلات شرپوینتی خودتان را مطرح کنید یا به سوالات سایر اعضاء پاسخ دهید، مقالات و ابزارهای خود را به رایگان با دیگران به اشتراک بگذارید، وبلاگ های تخصصی اعضاء را مطالعه کنید، در صورت تمایل برای خود وبلاگ شخصی درخواست نمایید، از همایشها و سخنرانی های شرپوینتی در محل سکونت خود و سایر نقاط دنیا باخبر شوید و در آنها شرکت نمایید، در ملاقات های خارج از سایت با سایر اعضاء به تبادل نظر بپردازید، درخواست یا پیشنهادهای کاری خود در زمینه شرپوینت را به سایر بازدیدکنندگان اعلام کنید و یا در مورد مطالب عمومی جذاب روزانه پیرامون خود برای دیگران بنویسید!

همچنین در راستای اهداف اشاره شده، تلاش خواهم کرد تا به نوشتن مطالبم هم در این وبلاگ، که نقطه شروع فعالیت وبلاگی من در زمینه شرپوینت می باشد، و هم در پایگاه اشاره شده بپردازم و تا جایی که برایم امکان پذیر باشد جهت توسعه و ترویج نرم افزار مورد علاقم شرپوینت تلاش خواهم کرد.

آدرس این سایت :

http://www.PSPCommunity.org

(Persian SharePoint Community)

اعضاء اصلی سایت :

مهدی شیخی ، آرش آقاجانی

آذر 07
نمایشگاه الکامپ 2008 و دایره معروف !!

روز 3شنبه گذشته برای بازدید از نمایشگاه الکامپ به محل دائمی نمایشگاههای بین المللی رفتم. 3شنبه روز آخر نمایشگاه بود و رغبت آنچنانی ام برای رفتن نداشتم! چون بازدید از چنین نمایشگاهی آنچنان جذابیت خاصی برام نداشت! اما اینکه چرا در آخرین روز تصمیم گرفتم برم، دلیلش فقط شرپوینت بود!!

شرکت راهکار خلاق یا SharePoint Solutions در این نمایشگاه و در سالن 40A غرفه داشت. راهکار خلاق در این نمایشگاه واقعاً متفاوت حاضر بود! این تفاوت هم، در محصولات شرپوینتی ای بود که عرضه کرده بود. امروزه اکثر شرکتهایی که در ایران در زمینه شرپوینت فعالیت می کنند به جز 3-4 تا از اونها که سابقه پیاده سازی دارند، بقیه صرفاً در زمینه فروش بسته فارسی مشغول هستند. راهکار خلاق در این نمایشگاه نشون داد که علاوه بر بومی سازی شرپوینت در اکثر بخشها و پیاده سازی پروژه های مختلف شرپوینتی، توانایی تولید محصولات پیشرفته مبتنی بر شرپوینت را نیز دارا می باشد.

در طراحی غرفه راهکار خلاق مانند همیشه از رنگهای سبز بهره گرفته شده بود. در چند ساعتی که در غرفه این شرکت حضور داشتم ، افراد زیادی با تخصصهای مختلف، از این غرفه بازدید کردند که در نوع خودش جالب بود. خیلی از بازدیدکنندگان شرپوینت رو می شناختند و دقیقاً به محل غرفه مراجعه می کردند و افرادی هم که آشناییتی با شرپوینت نداشتند پرسنل شرکت رو با سوالهای مختلفی در گیر می کردند. نکته حائز اهمیت و جالب، دایره معروف شرپوینت بود که توسط شرکت و در سایز بزرگی چاپ و در بدنه غرفه نصب شده بود. افرادی که شرپوینت رو نمی شناختند با اولین برخورد به تصویر این دایره وارد غرفه می شدند و در موردش سوال می کردند!! (شرپوینترها این دایره رو خوب می شناسند)

راهکار خلاق 2 محصول کامل و فوق العاده از لحاظ کارایی و اینترفیس کاربری در این نمایشگاه عرضه کرده بود. یکی سیستم مدیریت فروش و دیگری سیستم مدیریت پروژه بود که در نوع خودشون فوق العاده بودند. دموی این 2 محصول در نمایشگاه به افراد علاقمند ارائه میشد و قرار هست تا به زودی در سایت شرکت جهت دانلود قرار بگیره.

امیدوارم در سالهای آینده شاهد حضور بیشتر شرکتهای شرپوینتی در اینگونه نمایشگاه ها باشیم.

آبان 12
Microsoft Visual Studio 2010 CTP + .NET Framework 4.0  and New .NET Logo

امروز تصمیم دارم تا چندتا خبر جدید و جالب دات نتی براتون بنویسم!!

خبر اول مربوط به ارائه Microsoft Visual Studio 2010  به همراه .NET Framework 4.0 هست! و البته نسخه CTP یا Community Technology Preview که به صورت نصب Virtual PC ارائه شده. این نسخه  فقط به صورت انگلیسی و برای دریافت Feedback از برنامه نویسان و متخصصین .NET در اختیار عموم علاقمندان قرار گرفته تا براساس نظرات دریافت شده، نسخه نهایی اون عرضه بشه!!

همچنین این نسخه پلتفرمی جدید برای ویندوز ویستا، آفیس سیستم 2007 و وب می باشد.

برای دانلود اون می تونید از آدرس زیر استفاده کنید:

http://www.microsoft.com:80/downloads/details.aspx?familyid=922b4655-93d0-4476-bda4-94cf5f8d4814&displaylang=en&tm

برای کسب اطلاعات بیشتر در مورد امکانات و معماری این نسخه جدید به آدرس زیر مراجعه کنید :

http://msdn.microsoft.com/en-us/vs2008/products/cc948977.aspx

 

خبر دوم مربوط به انتشار لوگوی جدید .NET توسط مایکروسافت می باشد :

این لوگو طوری طراحی شده که کاربر پسند و دربرگیرنده تکنولوژی های جدید مایکروسافت از جمله سیلورلایت باشه و همچنین همخوانی در طراحی و گرافیک پیشرفته آن وجود داشته باشه!

اطلاعات مربوط به جزئیات این لوگو رو از وبلاگ Scot Barnes خوندم که در آدرس زیر می تونید اونرو مطالعه کنید:

http://blogs.msdn.com:80/msmossyblog/archive/2008/10/25/embrace-the-new-net-logo.aspx

 

راستی یه خبر سوم هم هست که مربوط به انتشار هفته گذشته Enterprise Library 4.1  مایکروسافت برای برنامه نویسان و Developer هاست که واقعاً کاربردیه!! برای جزئیات و دانلود اون به این آدرس برید :

http://www.microsoft.com/downloads/details.aspx?familyid=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en

 

شاد باشید... :)

 

مهر 28
آپدیت جدید  DST برای  WSS 3.0

در تاریخ 15 اکتبر، مایکروسافت آپدیت جدید مربوط به تنظیم ساعت برخی کشورها از جمله ایران رو برای WSS 3.0 منتشر کرد. این آپدیت مربوط به DST یا Daylight Saving Time می باشد. برخی کشورها از جمله ایران در هر سال ساعت های رسمی خودشون رو بدلیل سیاست های ذخیره و صرفه جویی در زمان یا DST تغییر می دهند و یا زمان خودشون رو به صورت محلی و براساس UTC تغییر می دهند. این آپدیت جدید مایکروسافت بدین منظور ارائه شده تا سیستم WSS شما از لحاظ مطابقت زمانی با مشکلی مواجه نشود و در این کشورها به درستی نمایش داده شود. این آپدیت برای کشورهای زیر ارائه شده است :

  • ایران
  • عراق
  • پاکستان
  • آرژانتین
  • ونزوئلا
  • مراکش
  • شیلی

برای دانلود این آپدیت و دریافت جزئیات بیشتر به این آدرس مراجعه کنید.

مهر 23
What is a " Best Practice" ?

چند ماه پیش مایکروسافت یک کتاب با ارزش با نام Microsoft Office Sharepoint Server 2007 Best Practices در زمینه شرپوینت منتشر کرد.

مولفین این کتاب 2 نفر از افراد با تجربه و ارزشمند در زمینه شرپوینت به نام های Bill English(System Administrator), Ben Curry(Sharepoint Architect) می باشند.

مایکروسافت در راستای کنفرانس Best Practice این کتاب رو منتشر کرد که با استقبال زیاد شرپوینتر ها مواجه شد.

 

Mark Schneider در وبلاگ شخصیش تعریفی از Best Practice رو به صورت ساده بیان کرده که اونرو از این آدرس می تونید بخونید.

 

پیشنهاد می کنم برای توسعه مطلوب و دقیق تر راهکارهای شرپوینتی خودتون در بخش های مختلف، حتماً این کتاب رو مطالعه کنید.

مهر 22
Flash WebPart , User Info WebPart

سلام ، امروز تصمیم دارم تا پیاده سازی دو نمونه وب پارت رو به همراه سورس کُد اونها به طور خلاصه براتون توضیح بدم...

اولین وب پارت یک وب پارت ساده در مورد نمایش اطلاعات سیستمی کاربر در شرپوینت هست.این وب پارت اطلاعاتی در مورد نام کاربر وارد شده به سیستم،مجوزهای دسترسی کاربر،زبان سیستم و IP سیستم کاربر و ... ارائه می دهد.بدنه کامل کد مربوط به فایل .CS این وب پارت به صورت زیر است :

using System;

using System.Runtime.InteropServices;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Serialization;

using Microsoft.SharePoint;

using Microsoft.SharePoint.WebControls;

using Microsoft.SharePoint.WebPartPages;

 

namespace WebPart1

{

[Guid("3243cdc3-d678-498c-97ed-2ed0f9990824")]

public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart

{

 

protected override void CreateChildControls()

{

base.CreateChildControls();

}

 

protected override void Render(HtmlTextWriter writer)

{

writer.Write("<TABLE id='tblUser'>");

writer.Write("<TR><TD>مجوز دسترسی</TD><TD>");

writer.Write(this.Context.User.Identity.IsAuthenticated.ToString());

writer.Write("</TD></TR><TR><TD>نام کاربر</TD><TD>");

writer.Write(this.Context.User.Identity.Name);

writer.Write("</TD></TR><TR><TD>نوع دسترسی</TD><TD>");

writer.Write(this.Context.User.Identity.AuthenticationType);

writer.Write("</TD></TR><TR><TD>زبان سیستم : </TD><TD>");

writer.Write(this.Context.Request.UserLanguages[0]);

writer.Write("</TD></TR><TR><TD>نام سیستم : </TD><TD>");

writer.Write(this.Context.Request.UserHostName);

writer.Write("</TD></TR><TR><TD>IP Address : </TD><TD>");

writer.Write(this.Context.Request.UserHostAddress);

writer.Write("</TD></TR></TABLE>");

 

}

}

}

 

وب پارت دوم برای درج یک فایل فلش (.SWF) با اندازه دلخواه در سایت شرپوینتی هست. کد این وب پارت در سایت CodeProject گذاشته شده ولی دارای اشکالاتی بود که من اونهارو برطرف کردم و جاهایی از کد رو هم تغییر دادم و اونرو تست و اجرا کردم. اصلاح شده این کد به شکل زیر است :

 

using System;

using System.ComponentModel;

using System.Runtime.InteropServices;

using System.Web.UI;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.WebControls;

using System.Xml.Serialization;

using Microsoft.SharePoint;

using Microsoft.SharePoint.WebControls;

using Microsoft.SharePoint.WebPartPages;

using Microsoft.SharePoint.Utilities;

using System.Web.UI.HtmlControls;

 

namespace WebPart2

{

[Guid("bcdd8075-6c6e-4947-b299-026b8941f593")]

[XmlRoot(Namespace = "FlashWebPart2")]

public class Flash : System.Web.UI.WebControls.WebParts.WebPart

{

public Flash()

{

this.ExportMode = WebPartExportMode.All;

}

 

private int flashWidth = 400;

[Personalizable(PersonalizationScope.Shared),

WebBrowsable(true),

Category("Flash Info"),

DefaultValue(400),

WebPartStorage(Storage.Shared),

WebDisplayName("Width"),

WebDescription("Width of the web part")]

public int FlashWidth

{

get { return this.flashWidth; }

set { this.flashWidth = value; }

}

 

private int flashHeight = 300;

[Personalizable(PersonalizationScope.Shared),

WebBrowsable(true),

Category("Flash Info"),

DefaultValue(300),

WebPartStorage(Storage.Shared),

WebDisplayName("Height"),

WebDescription("Height of the web part")]

public int FlashHeight

{

get { return this.flashHeight; }

set { this.flashHeight = value; }

}

 

private string flashUrl = "";

[Personalizable(PersonalizationScope.Shared),

WebBrowsable(true),

Category("Flash Info"),

DefaultValue(""),

WebPartStorage(Storage.Shared),

WebDisplayName("URL"),

WebDescription("URL of the web part")]

public string FlashURL

{

get { return this.flashUrl; }

set { this.flashUrl = value; }

}

 

protected override void Render(HtmlTextWriter writer)

{

string outHTML = "<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" " +

"codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" " +

"WIDTH=" + flashWidth + " HEIGHT=" + flashHeight + "> " +

"<PARAM NAME=movie VALUE=\"" + flashUrl + "\"> " +

"<PARAM NAME=WMODE VALUE=\"Transparent\">" +

"<PARAM NAME=quality VALUE=high> " +

"<EMBED src=\"" + flashUrl +

"\" quality=high wmode=\"transparent\" WIDTH=\"" + flashWidth +

"\" HEIGHT=\"" + flashHeight +

"\" TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\"></EMBED> " +

"</OBJECT>";

 

writer.Write(outHTML);

}

 

}

}

 

 

پس از اجرای وب پارت، یک منو در بخش تنظیمات وب پارت ایجاد شده که از طریق اون می تونید آدرس فایل .SWF و سایز نمایش فایل فلش رو تعیین نمایید.

 

روش ساخت وب پارت ها در VS 2008: برای پیاده سازی این وب پارت ها پس از نصب Extension مربوط به Visual Studio 2008، از منوی File>New>Project را انتخاب کرده و در قسمت Sharepoint ، WebPart را انتخاب نمایید. با این کار شما یک پروژه برای ساخت وب پارت ها ایجاد کرده اید. حال فایل کلاس .CS مربوط به پروژه رو از قسمت Solution Explorer باز کرده و هر کدام از کدهای بالا را براساس نیاز داخل آن کپی نمایید.حال باید پروژه را Build نمایید تا فایل .dll مربوط به کلاس شما ساخته شود.این فایل .dll را باید به طور دستی در داخل پوشه Bin از سایت شرپوینتی که قرار است این وب پارت داخل آن اجرا شود و در این آدرس کپی نمایید :

C:\Inetpub\wwwroot\virtual directory\<sharepointsite>or<PortAddress>\Bin\

 

سپس باید فایل Web.config مربوط به سایت شرپوینتی در همان آدرس بالا را باز کرده و تگ زیر را در قسمت <Safe Control> برای هر وب پارت به صورت جدا وارد کنید :

 

<safe control Assembly="webPart1" Namespace="WebPart1" TypeName="*" />

<safe control Assembly="webPart2" Namespace="WebPart2" TypeName="*" />

 

اکنون باید وارد سایت شرپوینتی خود شده و در قسمت Site Setting این وب پارت را به لیست وب پارت ها وارد نموده و سپس آن را در صفحه سایت از قسمت Edit Page اضافه نمایید و خروجی آنها را مشاهده کنید.

 

نکته مهم : در ویژوال استودیو 2008 پس از اینکه پروژه وب پارت را Build می نمایید با یک پیغام خطا در مورد تنظیمات Security مواجه خواهید شد! برای رفع این خطا باید خط زیر را در انتهای فایل Assembly.info در قسمت Properties از پروژه وب پارتتان اضافه کنید و سپس مجدداً انرا Build نمایید.

 

[assembly: System.Security.AllowPartiallyTrustedCallers()]

 

شاد باشید...

مهر 08
متا تگ ها  (Meta Tags) در شرپوینت

امروز تصمیم دارم تا در مورد استفاده از متا تگ ها (Meta Tags) در شرپوینت مطلبی رو به همراه معرفی یک سولوشن بنویسم...

Meta Tag ها، تگ های HTML ای هستند که در قسمت Head صفحات وب سایت درج می شوند و برای معرفی یکسری اطلاعات مربوط به وب سایت ها و همچنین معرفی این اطلاعات به موتورهای جستجو مورد استفاده قرار می گیرند. موتورهای جستجو (Search Engines) هنگام کرال کردن و بررسی وب سایت ها این متا تگ ها رو از داخل سورس سایت می خونن و اونها رو طبق الگوریتم هایی آرشیو می کنند و زمانی که شما از طریق موتورهای جستجو قصد جستجوی اطلاعات در مورد یک موضوع خاص رو داشته باشید ، موتور جستجو متا تگ های سایت های آرشیو شده رو بررسی کرده و براساس اطلاعات درخواستی شما سایتها رو به ترتیب برای شما نمایش می دهند.

این موضوع در سایت های شرپوینتی هم صادقه! اما در سایت های شرپوینتی مجبور هستید تا سایت رو در Sharepoint Designer باز کنید و این متا تگها رو به صورت دستی برای صفحه مستر پیج و یا سایر صفحات وارد کنید. این کار خیلی زمانبر و نیازمند به ابزار شرپوینت دیزاینر است!

در صفحات شرپوینت در بخش پایینی المان Head یک Delegate Control به نام "PlaceHolderAdditionalPageHead" وجود داره. این Delegate Control ها کنترلهای جالبی در شرپوینت هستند که به شما اجازه می دهند تا Content های خودتون رو با استفاده از Feature های شرپوینت در زمان Runtime درج و یا جایگزین نمایید. سولوشنی که در ادامه معرفی می کنم توسط این کنترلها، به شما این امکان رو می دهد تا بدون استفاده از شرپوینت دیزاینر، انواع مختلفی از متا تگ ها رو برای صفحات Document Library سایت شرپوینتی تعریف کنید. هنگامی که صفحات شما لود می شوند این متا تگهای تعریف شده هم توسط کنترلها لود می شوند و موتورهای جستجو به راحتی اونها رو از سورس سایت کرال می کنند.ضمناً شما برای هر صفحه می تونید یکسری متا تگ های خاص تعریف کنید!!

این سولوشن متا تگ های زیر رو برای درج در صفحات در اختیار شما می گزاره :

  • Meta Keywords
  • Meta Description
  • Meta Author
  • Meta Copyright
  • Meta Robots
  • Meta Expiration
  • Meta Refresh

فقط کافیه که شما این سولوشن رو نصب و deploy کنید. پس از Activate کردن در Site Setting ، شما باید برای هر Document Library به ازای هر متا تگ یک ستون سفارشی (Custom Column) از نوع Single Line ایجاد کنید.دقت کنید نام ستون ها برای هر متا تگ باید عیناً مانند موارد بالا باشد. پس از اینکه هر اطلاعاتی در این Doc Lib ثبت بشه از شما اطلاعات مربوط به متا تگ های تعریف شده هم درخواست میشه که به راحتی اونهارو تایپ می کنید و موتورهای جستجو اونها رو کرال خواهند کرد...

این سولوشن رو از اینجا دانلود کنید.

شاد و موفق باشید.

مهر 02
خطای (The file exists. (Exception from HRESULT: 0x80070050  و نحوه بازیابی سایت های شرپوینت ناشی از این خطا

چند وقت پیش با یک مشکل اساسی در شرپوینت مواجه شدم که با استفاده از یکسری راهکارها و ترفندها تونستم اون رو حل کنم و شرپوینت سرورم رو از نصب مجدد باز دارم! اینکه مشکل چی بود و چه راه حلی براش به کار بردم رو در این پست براتون توضیح می دم...

مشکل از اونجا شروع شد که من به دلایلی و به خاطر نیازی که داشتم، تصمیم گرفتم تا بر روی ویندوز 2003 سرور که بر روی آن شرپوینت سرور نصب شده بود، Exchange Server (EXS) نصب کنم. برای اینکار ابتدا باید Active Directory (AD) رو روی ویندوز نصب می کردم تا بتونم EXS رو نصب کنم. (تا قبل از این، شرپوینت سرور ، اطلاعات مربوط به کاربران سیستم رو از بخش مدیریت کاربران ویندوز می خوند.)

پس از نصب اکتیو دایرکتوری و بعد از اون Exchange Server، زمانی که خواستم Central Administrator شرپوینت رو در مرورگر اینترنت باز کنم با پیغام خطای زیر مواجه شدم!!

The file exists. (Exception from HRESULT: 0x80070050)

بعد تلاش کردم تا سایر سایت های شرپوینتیم رو باز کنم و برای همه Web Application ها باز هم با همون پیغام مواجه شدم!! خیلی عجیب بود! چون نمی تونستم سایت هام رو با اون همه اطلاعات که داخلشون ایجاد و ثبت کرده بودم ببینم! احساس کردم همه چی تموم شده و باید مجدداً شرپوینت رو Reinstall کنم! تصمیم گرفتم حالا که قراره این کارو انجام بدم، قبلش یه تحقیقی در مورد این خطا در اینترنت انجام بدم، شاید کسی براش راه حلی داشته باشه. اکثر سایت ها و وبلاگها رو که به نوعی با این مشکل مواجه شده بودند خوندم. متاسفانه اکثراً یا پاسخی رو پیدا نکرده بودند یا تصمیم گرفته بودند شرپوینت سرور رو دوباره نصب کنن!!! اما این کار واسه شرکتها و سازمانهای بزرگ که کلی اطلاعات و دیتا روی سایتهای شرپوینتشون نصبه و چندین ساله که سایتشون فعاله خیلی ریسک بزرگیه و یعنی همه چی از اول!!! خیلی از Admin های سایت های بزرگ هم دنبال راه حلی واسه این مشکل در وبلاگها و سایتهای مختلف بودند، اما راه حل منطقی ای برای حلش پیدا نکرده بودند!

اینکار واقعاً اشتباه هست که شما بعد از نصب شرپوینت سرور بخواهید اکتیو دایرکتوری نصب کنید، ولی من اینکار رو انجام دادم،اما در عوض اشتباه خودم رو با روشی که در زیر توضیح می دم جبران کردم! J

تقریباً یک روزی دنبال راه حل واسه این مشکل بودم! تا اینکه علت اصلی رو پیدا کردم و از ترکیب چند تا ترفند جالب و البته عجیب! این مشکل رو حل کردم و تونستم مجدداً سایتهای شرپوینتم رو به حالت قبل برگردونم!!!!! J

بررسی علت خطا:

به طور کلی این خطا زمانی رخ میده که SID (System ID) مربوط به یک کاربر تعریف شده در ویندوز، تغییر کنه و شرپوینت نتونه اونرو تشخیص بده! سیستم عامل ویندوز پس از نصب بر روی یک ماشین، به ازای نام ماشین و کاربرانی که در آن تعریف می شوند یک SID تعریف می کنه. وقتی که روی این سیستم، شرپوینت سرور نصب میشه، شرپوینت اطلاعات مربوط به کاربرانی که به عنوان کاربران شرپوینت تعریف شده اند از جمله (Administrator, Users,..) را به همراه SID مربوط به هر کاربر و نام سایتی که کاربر مجوز دسترسی به آن را دارد در بانک اطلاعاتی(Database) خود ذخیره می کند. حال زمانیکه AD بر روی سیستم نصب می شه این SID های مربوط به هر کاربر نیز تغییر می کنن و اکتیو دایرکتوری برای هر کاربری که در سیستم تعریف شده، یک SID جدید تولید می کنه! این نکته اصلی خطای مورد بحث است!! چون زمانیکه پس از نصب AD تصمیم می گیریم وارد سایت شرپوینتی بشیم، سایت، اطلاعات کاربر رو از دیتابیس می خونه و مشاهده می کنه که SID کاربر معتبر نیست! و پیغام خطای بالا رو نمایش میده!!!! البته این خطا فقط از طریق نصب اکتیو دایرکتوری ایجاد نمیشه،بلکه ممکنه زمانیکه شما آدرس دامین ها در شبکه و یا Domain Controller ها رو تغییر می دید و یا تغییرات اینچنینی که باعث بشه SID کاربران تغییر کنه، این خطا تولید بشه!

روش حل مشکل :

سه راه حل برای اینکار وجود داره :

روش اول : اینکه از طریق Central Administrator وارد بخش Web Application شده و در قسمت Site Collection Administrator ، کاربران مربوط به سایت رو که از طریق آنها به سایت Login می کردید حذف کنید و سپس مجدداً آنها را از طریق همین قسمت ایجاد کنید تا SID جدید آنها در دیتابیس جایگزین SID قبلی شود.

روش دوم : از Central Administrator وارد بخش Application Management شده و در قسمت Application Security وارد بخش Policy for Web Application شوید. Add User را کلیک کنید و Next را بزنید. نام یک کاربر را از اکتیو دایرکتوری انتخاب کنید و در این قسمت وارد کنید و قسمت Full Control را تیک بزنید و همچنین Account Operate as System را انتخاب نمایید. Finish را برای اتمام کار کلیک نمایید. (اگر به بخش Central Admin دسترسی دارید و اکتیو دایرکتوری هم بر روی سیستم شما نصب است،میتونید از این روش استفاده کنید.)

2 روش بالا زمانیکه شما به سایت Central Administrator دسترسی داشته باشید مفیدن! ولی اگر مشکلتون مثل مشکل من باشه و نتونید حتی به این بخش هم Login کنید، باید از روش سوم استفاده کنید.

روش سوم : این روش یک روشی هست که نیاز به دقت زیاد داره و باید روی Database شرپوینت یکسری Query بزنید و تغییراتی بدید، من اینکار رو انجام دادم و مشکلم برای تمام سایتهام برطرف شد.

( این تذکر رو به شما می دم که این مراحل زیر رو با مسئولیت و ریسک خودتون باید انجام بدید.)

1- ابتدا SQL Server رو از طریق Management Studio اجرا کنید. دیتابیس مربوط به سایت شرپوینتی که خطا داشت رو انتخاب کنید به عنوان مثال برای Central Admin باید دیتابیسی با نام Sharepoint_AdminContent_* (که ستاره نمایش دهنده یکسری شماره است) رو انتخاب کنید.

2- New Query را از منو انتخاب و دستورات زیر رو وارد کنید :

SELECT s.Id, w.FullUrl

FROM Sites s inner join Webs w on s.RootWebId = w.Id

 

مانند شکل زیر :

پس از اجرای دستور فوق ID مربوط به سایت های دیتابیس مورد نظر در خروجی نمایش داده میشه.

 

2- حال دستورات زیر رو وارد کنید. این دستورات اطلاعات مربوط به کاربر سایت مورد نظر رو از بانک استخراج می کنه :

 

SELECT *

FROM UserInfo

WHERE tp_Login='نام کاربر\نام ماشین' and tp_SiteID='8395827D-3815-470A-8537-409EDC54DA54'

 

در جلوی قسمت tp_siteID مقداری که از نتیجه Query قسمت اول بدست آوردید وارد کنید. در قسمت tp_Login هم به صورت نام کاربر/نام ماشین وارد کنید.

مانند شکل زیر :

3- حال از خروجی بدست آمده، SID مربوط به این کاربر که Administrator است. برای سایت مورد نظر مشخص شده.حالا باید SID کاربر موجود در سیستم رو برای این کاربر پیدا کنیم و جایگزین این SID موجود در دیتابیس شرپوینت کنیم. برای اینکار از ابزار PSTools که توسط مایکروسافت ارائه شده استفاده می کنیم. این تولز رو از اینجا دانلود کنید. پس از Unzip کردن، از طریق Command Prompt وارد دایرکتوری اون شده و دستور زیر رو وارد کنید :

Psgetsid \\نام ماشین نام کاربر

مانند شکل زیر که SID مربوط به نام ماشین و نام کاربر رو به طور جدا استخراج کرده :

4- حال باید این SID به دست آمده با فرمت S-n-n-n را به فرم هگزا دسیمال تبدیل کنیم تا بتونیم اونرو در دیتابیس Update کنیم!

برای این کار ابزار خاصی وجود نداره و فقط توسط یکسری راه حلهای خاص که تشریح میکنم این تبدیل رو میشه انجام داد.

فرض کنید SID کاربر به این صورت باشه :

S-1-5-21-4064436893-45162017-310737895-500

تبدیل هگزادسیمال اون به صورت زیر میشه :

0x0105000000000005150000009D6242F2211EB102E77B8512F4010000

اما اینکه چطور به صورت بالا تبدیل شد رو به طور خلاصه در زیر نشون میدم :

0x نمایش به هگزادسیمال

01 (S-1)
05
(هفت تا علامت دَش (-) منهای 2 , 7-2 = 5)
000000000005
(5 = 0×000000000005, big-endian)
15000000
(21 = 0×15000000, little-endian)
9D6242F2
(4064436893 = 0xF242629D, little-endian)
211EB102
(45162017 = 0x02B11E21, little-endian)
E77B8512
(310737895 = 0x12857BE7, little-endian)
F4010000 (500 = 0x01F4, little-endian)

 

تبدیل این فرمتها یک مقدار نیاز به دقت داره و کار سختی نیست.برای تبدیل اعداد دسیمال به هگزا هم از یک ماشین حساب مهندسی یا Power Calc مایکروسافت می تونید استفاده کنید.نحوه تبدیل بالا رو از یکی از وبلاگها پیدا کردم و خودم ازش استفاده کردم و براتون نوشتم.

خب! خسته نباشید. یک مقدار پیچیده بود ولی شما به عنوان یک Admin شرپوینت باید این کارهارو انجام بدید تا بتونید از نصب مجدد شرپوینت و برگردوندن اون همه اطلاعات رهایی پیدا کنید!

5- در مرحله آخر هم شما باید این مقدار هگزادسیمال رو پس از تبدیل در دیتابیس قرار بدید و اونرو آپدیت کنید.برای اینکار دستورات زیر رو در بصورت Query وارد کنید :

UPDATE UserInfo

SET tp_SystemID = 0x010500000000000515000000B83B756A5D4EEB75EA44AFC7F4010000

FROM UserInfo

WHERE tp_ID = '1' and tp_guid='7AC7285B-ACEB-4942-AF7E-CD9191FDE5A4' and

tp_Login= 'نام کاربر\نام ماشین' and tp_SiteID = '8395827D-3815-470A-8537-409EDC54DA54'

مانند شکل زیر:

برای اینکه بتونم در جدول مربوط به UserInfo فیلد مورد نظر رو دقیق تر مشخص کنم و سطر مربوط به سایت رو برای آپدیت درست انتخاب کرده باشم، به همین دلیل در قسمت Where به همراه پارامتر tp_SiteID که ID سایت مورد نظرم هست، از پارامترهای بیشتری استفاده کردم.شما می تونید با دیدن خروجی بند 2 این مقاله پارامترهای مربوط به سایت رو(tp_ID,tp_guid) با مقادیرشون مشخص کنید تا سطر دیگری رو اشتباهاً آپدیت نکنید!!!

6- خب همه چی تمومه! اگه مراحل بالا رو درست و دقیق انجام داده باشید، از این پس با ورود به سایت شرپوینتی دیگه پیغام خطایی نمی بینید و سایت با همه اطلاعاتش به درستی نمایش داده میشه!

امیدوارم این تجربه من براتون مفید بوده باشه...

شاد و موفق باشید.

1 - 10صفحه بعد
 

 My Blog in PSPCommunity.org

 
 

 مستندات آموزشی

 
  
  
SharePoint_ITPro_and_Developer_2008-05-30.pdfSharePoint_ITPro_and_Developer_2008-05-30
sharepoint document.zipsharepoint document