c# - কিভাবে.NET এ সমাবেশ বিন্দু ব্যর্থতা লগিং(ফিউশন) সক্রিয় করতে




vb.net binding (8)

কিভাবে আমি .NET এ সমাবেশ বিন্দু ব্যর্থতা লগিং (ফিউশন) সক্ষম করতে পারি?


FL সক্ষম করতে আপনি এই PowerShell স্ক্রিপ্ট প্রশাসক হিসাবে চালাতে পারেন:

Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog         -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures      -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath          -Value 'C:\FusionLog\' -Type String

দ্রষ্টব্য: LogPath এন্ট্রির জন্য প্রদত্ত ডিরেক্টরি বিদ্যমান কিনা তা নিশ্চিত করুন। ডিরেক্টরি উপস্থিত না থাকলে, আপনার লগগুলি পুনরুদ্ধারযোগ্য হবে না।

এবং এই এক নিষ্ক্রিয় করা:

Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath

আপনার যদি আপনার মেশিনে উইন্ডোজ এসডিকে ইনস্টল করা থাকে, তবে আপনি মাইক্রোসফ্ট এসডিকে \ সরঞ্জামগুলির অধীনে "ফিউশন লগ ভিউয়ার" খুঁজে পাবেন (ভিস্তা বা উইন্ডোজ 7/8 তে শুরু মেনুতে "ফিউশন" টাইপ করুন)। এটি চালু করুন, সেটিংস বোতামে ক্লিক করুন এবং "লগ বাইন্ড ব্যর্থতা" বা "সমস্ত বাঁধন লগ করুন" নির্বাচন করুন।

এই বোতামগুলি অক্ষম থাকলে, শুরু মেনুতে ফিরে যান, লগ ভিউয়ারটি ডান-ক্লিক করুন এবং "প্রশাসক হিসাবে চালান" নির্বাচন করুন।


আমি সাধারণত ফিউশন লগ ভিউয়ার ( Fuslogvw.exe থেকে একটি ভিসুয়াল স্টুডিও কমান্ড প্রম্পট বা ফিউশন লগ ভিউয়ার থেকে Fuslogvw.exe ) ব্যবহার করি - আমার মানক সেটআপটি হল:

  • প্রশাসক হিসাবে খোলা ফিউশন লগ ভিউয়ার
  • সেটিংস ক্লিক করুন
  • কাস্টম লগ পাথ চেকবক্স সক্ষম চেক করুন
  • লগ ইন করতে চান এমন অবস্থানটি লিখুন, উদাহরণস্বরূপ, c:\FusionLogs ( গুরুত্বপূর্ণ: আপনি ফাইল সিস্টেমে এই ফোল্ডারটি তৈরি করেছেন তা নিশ্চিত করুন।)
  • লগিংয়ের সঠিক স্তরটি চালু আছে কিনা তা নিশ্চিত করুন (আমি কখনও কখনও ঠিক আছে যে সমস্ত জিনিস ঠিক কাজ করছে তা নিশ্চিত করার জন্য লগের সবগুলি ডিস্কের সাথে সংযুক্ত হয় )
  • ঠিক আছে ক্লিক করুন
  • কাস্ট করতে লগ অবস্থান বিকল্প সেট করুন

একবার সম্পন্ন হয়ে গেলে লগিং বন্ধ করতে ভুলবেন না!

(আমি শুধু এই একই প্রশ্নে পোস্ট করেছি - আমার মনে হয় এটি এখানেও প্রাসঙ্গিক।)


একটি কুৎসিত লগ ফাইল ব্যবহার করার পরিবর্তে, আপনি ডটনেটরুন্টাইম প্রাইভেট প্রদানকারী ( Microsoft-Windows-DotNETRuntimePrivate ) GUID 763FD754-7086-4DFE-95EB-C01A46FAF4CA এবং FusionKeyword কীওয়ার্ড (0x4) দিয়ে চালু করে ETW/xperf মাধ্যমে ফিউশন লগ সক্রিয় করতে পারেন। উপর.

@echo off
echo Press a key when ready to start...
pause
echo .
echo ...Capturing...
echo .

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -on PROC_THREAD+LOADER+PROFILE -stackwalk Profile -buffersize 1024 -MaxFile 2048 -FileMode Circular -f Kernel.etl
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+763FD754-7086-4DFE-95EB-C01A46FAF4CA:0x4:0x5 -f clr.etl -buffersize 1024

echo Press a key when you want to stop...
pause
pause
echo .
echo ...Stopping...
echo .

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrRundownSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+Microsoft-Windows-DotNETRuntimeRundown:0x118:0x5:'stack' -f clr_DCend.etl -buffersize 1024 

timeout /t 15

set XPERF_CreateNGenPdbs=1

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop ClrSession ClrRundownSession 
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -merge kernel.etl clr.etl clr_DCend.etl Result.etl -compress
del kernel.etl
del clr.etl
del clr_DCend.etl

আপনি এখন PerfView এ ETL ফাইলটি খুলুন এবং ইভেন্ট টেবিলের অধীনে দেখুন, তখন আপনি ফিউশন ডেটা খুঁজে পেতে পারেন:


নিম্নলিখিত রেজিস্ট্রি মান সেট করুন:

[HKEY_LOCAL_MACHINE \ সফটওয়্যার \ মাইক্রোসফ্ট ফিউশন! সক্রিয় লোগো] (DWORD) থেকে 1 পর্যন্ত

অক্ষম করতে, 0 সেট করুন অথবা মানটি মুছুন।

[সম্পাদনা]: উইন্ডোজ রেজিস্ট্রি এডিটর ফরম্যাটে নিম্নলিখিত টেক্সটটি একটি ফাইলে সংরক্ষণ করুন, যেমন FusionEnableLog.reg,

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"EnableLog"=dword:00000001

তারপর উইন্ডোজ এক্সপ্লোরার থেকে ফাইল চালান এবং সম্ভাব্য ক্ষতি সম্পর্কে সতর্কতা উপেক্ষা।


যদি আপনি FusionLog.exe এর অবস্থান সম্পর্কে অবাক হয়ে থাকেন তবে আপনি জানেন যে আপনার এটি আছে, কিন্তু আপনি এটি খুঁজে পাচ্ছেন না? আমি গত কয়েক বছর ধরে FUSLOVW খুঁজছেন এবং বারবার। FUSION LOG এর সংস্করণে .NET 4.5 সংস্করণে স্থানান্তরের পরে বিস্ফোরণ ঘটেছে। আপনার ইনস্টল থাকা সফ্টওয়্যারের উপর নির্ভর করে তার ডিস্কগুলিতে এটি পাওয়া যাবে:

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v8.0A \ bin \ NETFX 4.0 সরঞ্জাম \ x64

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v7.0A \ বিন \ x64

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v8.1A \ bin \ NETFX 4.5.1 সরঞ্জাম \ x64

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v8.0A \ bin \ NETFX 4.0 সরঞ্জাম

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v8.1A \ bin \ NETFX 4.5.1 সরঞ্জাম

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে উইন্ডোজ \ v7.0A \ বিন


শুধু অন্যদের সাহায্য করতে পারে যে তথ্য একটি ক্ষুদ্র বিট; ক্লাস / ইন্টারফেসগুলি উত্তরাধিকারী / শ্রেণীবিন্যাসের জন্য কিছু ডিরেক্টরিতে সমস্ত সমাহারগুলি অনুসন্ধানের লাইনের সাথে আপনি যদি কিছু করেন তবে নিশ্চিত করুন যে আপনি যদি আপনার নিজস্ব অ্যাসেম্বলিগুলির একটিতে এই ত্রুটিটি পান তবে পুরানো সমাহারগুলি পরিষ্কার করুন।

দৃশ্যকল্প মত কিছু হবে:

  1. সমাবেশ একটি ফোল্ডারে সব সমাহার লোড
  2. এই ফোল্ডারে বিবিসি বি বিষ্ঠা, কিন্তু রেফারেন্স সমাবেশ সি
  3. বিধানসভা সি বিদ্যমান, কিন্তু নামস্থান, ক্লাসের নাম বা কিছু অন্যান্য বিশদ বিসর্জন বিলে পরিণত হওয়ার সময় পরিবর্তিত হতে পারে (আমার ক্ষেত্রে একটি নামস্থান একটি পুনঃসংযোগ প্রক্রিয়ার মাধ্যমে পরিবর্তিত হয়েছিল)

সংক্ষেপে: একটি --- লোড -> বি (বাজে) --- রেফারেন্স ---> সি

যদি এটি হয়, ত্রুটিপূর্ণ বার্তার মধ্যে নামস্থান এবং শ্রেণি নামমাত্র একমাত্র শব্দের চিহ্ন। ঘনিষ্ঠভাবে পরীক্ষা করে দেখুন। যদি আপনি এটি আপনার সমাধানতে যে কোনও জায়গায় খুঁজে না পান তবে সম্ভবত আপনি একটি পুরানো সমাবেশটি লোড করার চেষ্টা করছেন।


ফিউশন লগ সেটিংস ভিউয়ার চেঞ্জার স্ক্রিপ্ট বারটি করার জন্য সেরা উপায় নয়।

ASP.NET , এটি সঠিকভাবে কাজ করার জন্য এটি সময়ে চতুর ছিল। এই স্ক্রিপ্টটি দুর্দান্ত কাজ করে এবং স্কট হানসেলম্যানের পাওয়ার টুল তালিকাতেও তালিকাবদ্ধ হয়েছিল। আমি ব্যক্তিগতভাবে এটি বছর ধরে ব্যবহার করেছি এবং এটি আমাকে কখনও নিচে না।







assemblies