عیب یابی مشکل web Deploy با ویژوال استادیو در سرور مجازی

خطایی Unable to connect” errors

در زمان Publish  خودکار وب سایت خود برروی iis سرورمجازی یا سرور اختصاصی  خود ممکن با خطا های روبرو شوید. اولین خطاهایی که احتمال دارد با آن مواجه شوید چیزی شبیه تصویر زیر درپنجره خروجی ویژوال استودیو خواهد بود.

یا

یا

یا

یا

متنی که در این خطا ها برجسته شده است، کلیدی برای درک ماهیت مشکل است. درواقع web Deploy  قادر به دریافت پاسخ از سمت سرورمجازی یا سروراختصاصی نبوده و ویژوال استودیو نیز قادر به تشخیص خطا از بین علل موجود نبوده است. بنابراین لازم است لیستی از مواردی که ممکن است وجود داشته باشد را امتحان کنید.

  1. آیا web management service نصب شده است ؟

برای این مورد وارد سرور خود شوید و  Internet Information Services Manager را باز کنید سپس نام ماشین خود را انتخاب کنید در پنجره  features view باید آیکن سه برنامه iis manager Permissons ، iis manager user و management service را مشاهده نمایید.

در صورتی که این سه برنامه وجود ندارند شما نیاز دارید آنها را از طریق Add Rule Services در management service خود اضافه کنید.

همچنین می توانید از طریق web PlatForm installer در سربرگ products نیز نصب را انجام دهید. سرور خود را از پنل سمت  چپ انتخاب و گزینه مربوط به iis: service management را انتخاب کنید. توجه داشته باشید پس از نصب  mamagement service شما باید آن را start کنید. برای این منظور در پنجره باز شده  روی Actions کلیک راست کنید و گزینه start را انتخاب کنید.

  • آیا فایروال ویندوز، مجوزلازم برایservice management را ارائه نموده است؟

زمانی که web management service را در سرور نصب می کنید یک rule ورودی با نام  HTTPTraffic-In در فایروال ویندوز اضافه  می شود. برای مشاهده وجود وفعال بودن این Rule مسیر زیر را دنبال کنید.

Start->AdministrativeTools-> Windows Firewall with Advanced Security

روی in bound Rules کلیک کنید و rule مربوط به web management را از لیست موجود پیدا کنید این rule باید برای همه پروفایل ها فعال باشد. اگر شما از فایروال ۳rb party نیز استفاده می کنید لازم است اطمینان حاصل کنید که پورت ۸۱۷۲   نیز روی سرور شما برای دسترسی از راه دور باز باشد.

  • آیا سرویس URL درست است ؟

به طور پیش فرض web management service به پورت ۸۱۷۲ گوش می دهد. اما می توان این پورت را تغییر داد.

ساده ترین راه برای بررسی اینکه web management services از چه پورتی استفاده می کند این است که پنجره service management  را همان طور که در بالا توضیح داده شد باز کنید و اطلاعات ip و پورت مربوط به آن را در بخش connections مشاهده کنید.

اگر پورت تعریف شد غیر از ۸۱۷۲ است لازم است این پورت را در فایروال ویندوز باز کنید و تنظیمات مربوط به  ویژوال استودیو را نیز روی پورت جدید قراردهید.

یا

یا

این پیام تا حدودی گمراه کنند است، زیرا می گوید که سرور پاسخ نمی دهد. درحالی که خطایی ۴۰۳ نشان می دهد که web Deploy می تواند با سرور تماس بگیرد، اما پاسخی از سمت سرور دریافت نمی کند.

http Log برای  web management service به ما جهت دریافت علت خطایی که به وجود آمده است می تواند کمک کند. این log ها را می توانید به طور پیش فرض در مسیر زیر بیابید.

%SystemDrive%\Inetpub\logs\WMSvc

مانند سایر log  های مربوط به IIS داده ها بلافاصله با ورود به سیستم به شما نمایش داده نمی شود، بنابراین مجبور خواهید شد چند قیقه منتظر بمانید تا در خواست را مشاهده کنید و یا  web management را ریستارت کنید تا بتوانید log را مشاهده  نماید. برای مثال لاگ می تواند شبیه زیر باشد.

عدد ۶ بعد از ۴۰۳ در لاگ به معنای” IP address rejected ” رد شدن ای پی آدرس است.

نکته : لیست کاملی ا ز کد های وضعیت iis را می توانید درلینک https://support.microsoft.com/kb/943891  مشاهده نمایید.

  • آیا management service برای ارتباط از راه دور تنظیم شده است ؟

به احتمال زیاد این مورد دلیلی برای خطای ۴۰۳٫۶ است.  بر روی آیکن management service  دابل کلیک  کنید و تایید کنید که enable remote connection (امکان  ریموت از راه دور) فعال است. شما قبل از اعمال تغییرات باید سرویس را غیر فعال کنید.  پس از اعمال تغییرات مجددا آن را ریستارت نماید.

آیا محدودیت ای پی در management service تنظیم شده است؟

دلیل دیگر که ممکن شما خطای ۴۰۳ را دریافت کنید این می باشد که  management service به گونه ای پیکربندی شده باشد تا ip مشتری را انکارکند.

به طور پیش فرض management service به گونه ای تنظیم شده است که تمام ip ها اجازه ریموت از راه دور را داشته باشند.  برای بررسی محدودیت های آی پی  باید بر روی آیکن management service دابل  کلیک نمایید وقوانین مربوط به محدودیت ip را می توانید در پایین صفحه بخش ipv4 بررسی کنید.

یا

یا

یا

خطای ۴۰۴ نشان دهند این مورد است که  web Deploy موفق شده است  با  web Management Service ارتباط برقرار کند اما نتوانست آنچه را که نیاز داشته است را پیدا کند.

 اولین چیزی که باید انجام شود این است که  بدانیم web Deploy  به دنبال چه منابعی بوده است.

شما باید فایل Log مربوط به wmsvc را بررسی کنید ممکن خطی شبیه خط زیر را مشاهده نماید.

۲۰۱۱-۰۵-۱۲ ۱۵:۲۱:۵۰ ۱۹۲٫۱۶۸٫۰٫۲۱۱ POST /msdeploy.axd site=default%20web%20site 8172 – 192.168.0.203 – 404 7 0 1606

در این خطا msdeploy.axd یک handler برای درخواست های web Deploy می باشد که در دسترس نیست.

  • آیا web Deploy نصب شده است ؟

برای اطمینان از اینکه web Deploy نصب است از مسیر کنترل پنل گزینه  Programs and features، لیست برنامه های نصب را مشاهده کنید. باید  Microsoft web Deploy را مشاهده کنید. اگر آن وجود ندارد. شما می توانید از طریق گزینه web platform installer سربرگ prodcts  آن را نصب کنید.

در لیست محصولات web Deployment را انتخاب کنید. همچنین شما باید مطمئن  باشید که WebDeployment Agent Service (MsDepSvc) در حال اجرا برروی سرور است.

  • آیا web deployment handler نصب است ؟

اگر web Deploy  نصب است ولی هنوز خطا دریافت می کنید مطمئن شوید که قابلیت iis7 Deployment Handler در web Deploy نصب شده است.

از مسیر کنترل پنل گزینه program and features گزینه Microsoft web Deploy 2.0 را پیدا کنید سپس روی آن کلیک راست نمایید حال روی گزینه change کلیک کنید. درپنجره wizard باز شده روی next کلیک کنید و مجددا در صفحه اول روی change کلیک کنید در صفحه دوم iis7 Deployment handlerو همه زیر گزینه های آن را اضافه کنید.

در ادامه مراحل wizard روی گزینه next کلیک کنید. بعد از این تغییرات لازم است مجددا Management service را ریستارت کنید.

خطایی قوانین مربوط به مجوز ها و یا نمایندگی ها :

هنگامی که web Deploy و سرویس مدیریت وب به درستی پیکربندی شده باشند شما نیاز به تنظیم قوانین مربوط به مجوز ها یانمایندگی ها برای اجازه به کاربران برای به روز رسانی محتوا خواهید بود.

برای مجوز ها چندین خطای متفاوت در visual studio وجود دارد. برای مثال:

Web deployment task failed.(Connected to the destination computer(“deployserver”)
using the Web Management Service, but could not authorize.
Make sure that you are using the correct user name and password,that the
to exists, and that the credentials represent a user who haspermissions to access the site.site you are connecting

یا

Make sure the site name, user name, and password are correct. Ifthe issue is not resolved,
please contact your local or server administrator.

یا

Error details:

Connected to the destination computer (“deployserver”)using the Web
but could not authorize. Make sure that you are using the correctuser name and password,Management Service,
that the site you are connecting to exists, and that thecredentials represent a user who
has permissions to access the site.

یا

The remote server returned an error: (401) Unauthorized.

در فایل لاگ wmsvc میتوانید خطای زیر را مشاهده کنید.

۲۰۱۱-۰۵-۱۲ ۱۵:۵۰:۱۲ ۱۹۲٫۱۶۸٫۰٫۲۱۱ POST /msdeploy.axd site=default%20web%20site 8172 – 192.168.0.203 – 401 2 5 ۱۶۵۳

۲۰۱۱-۰۵-۱۲ ۱۵:۵۰:۱۲ ۱۹۲٫۱۶۸٫۰٫۲۱۱ POST /msdeploy.axd site=default%20web%20site 8172 user1 192.168.0.203 – 401 1 1326 124

یکی از وضعیت های برجسته http در خروجی های ویژوال استودیو خطای عدم دسترسی یا Access Denied است خطا برجستهwin32 مربوط به شکست در لاگین است که معمولا خطای “Logon failure: unknown user name orbad password”  نمایش داده خواهد شد. اگر کاربر تایید هویت شود ولی مجوزهای لازم برای انتشار محتوا را نداشته باشد. خطایی مشابه ورود به سیستم رخ خواهد داد.

۲۰۱۱-۰۵-۱۲ ۱۵:۵۵:۳۸ ۱۹۲٫۱۶۸٫۰٫۲۱۱ POST /msdeploy.axd site=default%20web%20site 8172 – 192.168.0.203 – 401 2 5 0

برای اجازه دادن به کاربران برای انتشار محتوا، شما نیاز به تنظیم مجوزبرای هر دستور العمل دارید راهنمایی مجوز ها را می توانید از سایت iis.net دریافت کنید.

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

Web deployment task failed. (Unable to perform the operation(“Create Directory”)  for thespecified
directory (“bin”). This can occur if the serveradministrator has not authorized this operation for
the user credentials you are using.

لاگ فایل wmsve نشان می دهد http200 پاسخی برایدرخواست ها می باشد . خوشبختانه web Deploy 2.1 همچنان اطلاعات را در Microsoftweb deploy service Log  می نویسد برای مشاهده آن event viewer را باز کنید ومسیر زیر را دنبال کنید.

Applications and Services Logs ->Microsoft Web Deploy

برای این خطایی خاص فایل لاگ داری جزئیات اضافه است.

User: DEPLOYSERVER\User1

Client IP: 192.168.0.203

Content-Type: application/msdeploy

Version: 8.0.0.0

MSDeploy.VersionMin: 7.1.600.0

MSDeploy.VersionMax: 7.1.1070.1

MSDeploy.Method: Sync

MSDeploy.RequestId: 50de0746-f10d-4640-9b3d-4ba773520e38

MSDeploy.RequestCulture: en-US

MSDeploy.RequestUICulture: en-US

Skip: objectName=”^configProtectedData$”

Provider: auto, Path:

Tracing deployment agent exception. Request ID ’۵۰de0746-f10d-4640-9b3d-4ba773520e38′. Request Timestamp: ‘5/12/2011 9:18:12 AM’. Error Details:

Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation (“Create Directory”)

for the specified directory (“C:\inetpub\wwwroot\bin”). This can occur if the server administrator has not authorized this

operation for the user credentials you are using.

—> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. —> System.UnauthorizedAccessException:

Access to the path ‘C:\inetpub\wwwroot\bin’ is denied.

   at Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath)

   at Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)

   at Microsoft.Web.Deployment.DirPathProvider.CreateDirectory(String fullPath, DeploymentObject source)

   at Microsoft.Web.Deployment.DirPathProvider.Add(DeploymentObject source, Boolean whatIf)

   — End of inner exception stack trace —

   — End of inner exception stack trace —

از این، ما می توانیم متوجه شویم که کاربر user1 مجوزهای لازم برای تنظیم اطلاعات امنیتی را ندارد در مورد این خطا اگر به کاربر مجوزهای لازم برای تغییر در محتوا داده شود مشکل حل خواهد شد.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *