ผู้ให้บริการ Raygun สำหรับ. NET Framework
สนับสนุนโครงการที่สร้างด้วยเฟรมเวิร์กต่อไปนี้:
ติดตั้งแพ็คเกจ NUGET ไปยังโครงการที่ใช้หนึ่งในเฟรมเวิร์กข้างต้นและจะมีการอ้างอิงแอสเซมบลีที่ถูกต้อง
สำหรับ Xamarin เราแนะนำให้เพิ่ม raygun4xamarin.forms หรือ mindscape.raygun4net.xamarin.android & mindscape.raygun4net.xamarin.ios.unified แพ็คเกจ
สำหรับ. NET Core และ. NET รุ่น 5.0 หรือสูงกว่าเราขอแนะนำให้ใช้แพ็คเกจ MindScape.raygun4net.netcore
dotnet add package Mindscape.Raygun4Netดูเอกสาร Raygun สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ผู้ให้บริการนี้
เมื่อส่งข้อยกเว้นไปยังบริการ Raygun จำเป็นต้องใช้คีย์ APP API เพื่อแมปข้อความไปยังแอปพลิเคชันของคุณ
เมื่อคุณสร้างแอปพลิเคชันใหม่ในแผงควบคุม Raygun ของคุณคีย์ APP API ของคุณจะปรากฏขึ้นภายในหน้าคำแนะนำ นอกจากนี้คุณยังสามารถค้นหาคีย์ API ได้โดยคลิกที่ปุ่ม "การตั้งค่าแอปพลิเคชัน" ในแถบด้านข้างของแดชบอร์ด Raygun
ชั้นเรียนหลักสามารถพบได้ใน namespace mindscape.raygun4net
ผู้ให้บริการ Raygun4Net รวมถึงการสนับสนุนสำหรับ. NET Frameworks จำนวนมาก เลื่อนลงเพื่อค้นหาข้อมูลเกี่ยวกับการใช้ Raygun สำหรับประเภทของแอปพลิเคชันของคุณ
ในฐานะที่เป็นเวอร์ชัน 5.0.0 การสนับสนุน ASP.NET ได้ถูกย้ายไปยังแพ็คเกจ NUGET ใหม่ หากคุณมีโครงการ ASP.NET โปรดถอนการติดตั้งแพ็คเกจ Raygun4Net NuGet และติดตั้ง MindScape.raygun4net.aspnetcore Nuget แพ็คเกจแทน
เมื่อติดตั้งแพ็คเกจแล้วให้เพิ่มรหัสต่อไปนี้ลงใน appsettings.json ของคุณ (หากคุณใช้การกำหนดค่าประเภทอื่นให้เพิ่มที่นั่น):
"RaygunSettings" : {
"ApiKey" : " YOUR_APP_API_KEY "
}กำหนดค่ามิดเดิลแวร์ของ Raygun เพื่อจัดการกับข้อยกเว้นที่ได้รับการเรียกและส่งข้อยกเว้นที่ไม่มีการจัดการโดยอัตโนมัติ
ใน Program.cs :
using Mindscape.Raygun4Net.AspNetCore; ถึงคำสั่งที่คุณใช้builder.Services.AddRaygun(builder.Configuration); -app.UseRaygun(); หลังจากวิธีการอื่น ๆ เช่น app.UseDeveloperExceptionPage() หรือ app.UseExceptionHandler("/Home/Error") using Mindscape . Raygun4Net . AspNetCore ; var builder = WebApplication . CreateBuilder ( args ) ;
// Add services to the container.
builder . Services . AddRaygun ( builder . Configuration ) ;
/*The rest of your builder setup*/
var app = builder . Build ( ) ;
// Configure the HTTP request pipeline.
if ( ! app . Environment . IsDevelopment ( ) )
{
app . UseExceptionHandler ( "/Error" ) ;
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app . UseHsts ( ) ;
}
app . MapGet ( "/throw" , ( Func < string > ) ( ( ) => throw new Exception ( "Exception in request pipeline" ) ) ) ;
app . UseRaygun ( ) ;
/*The rest of your app setup*/การตั้งค่าข้างต้นจะทำให้ข้อยกเว้นที่ไม่ได้รับการจัดการทั้งหมดถูกส่งไปยังบัญชี Raygun ของคุณซึ่งคุณสามารถดูข้อมูลการตรวจสอบข้อผิดพลาดและรายงานข้อผิดพลาดทั้งหมดได้อย่างง่ายดาย
โหนดการกลืนกินของ Raygun ต้องการ TLS 1.2 หรือ TLS 1.3 หากคุณใช้ . NET 3.5 หรือก่อนหน้านี้ คุณอาจต้องเปิดใช้งานโปรโตคอลเหล่านี้ในแอปพลิเคชันของคุณและแก้ไขระบบปฏิบัติการของคุณ
ตรวจสอบคู่มือการแก้ไขปัญหา TLS จาก Microsoft สำหรับคำแนะนำของพวกเขา
การอัปเดตคุณสมบัติโปรโตคอลในรหัสเริ่มต้นของแอปพลิเคชันของคุณ
protected void Application_Start ( )
{
// Enable TLS 1.2 and TLS 1.3
ServicePointManager . SecurityProtocol |= ( ( SecurityProtocolType ) 3072 /*TLS 1.2*/ | ( SecurityProtocolType ) 12288 /*TLS 1.3*/ ) ;
} ในไฟล์ web.config ของคุณค้นหาหรือเพิ่มองค์ประกอบ <configSections> ซึ่งควรซ้อนกันภายใต้องค์ประกอบ <configuration> และเพิ่มรายการต่อไปนี้:
<section name="RaygunSettings" type="Mindscape.Raygun4Net.RaygunSettings, Mindscape.Raygun4Net"/>
จากนั้นอ้างอิงโดยการเพิ่มบรรทัดต่อไปนี้บางที่หลังจากแท็ก configSections
< RaygunSettings apikey = " YOUR_APP_API_KEY " />ตอนนี้คุณสามารถตั้งค่า Raygun เพื่อส่งข้อยกเว้นที่ไม่ได้รับการจัดการโดยอัตโนมัติหรือ/และส่งข้อยกเว้นด้วยตนเอง
ในการส่งข้อยกเว้นที่ไม่ได้กล่าวไว้โดยอัตโนมัติให้ใช้โมดูล Raygun HTTP ภายในองค์ประกอบ <configuration> ใน web.config สิ่งนี้ทำแตกต่างกันเล็กน้อยขึ้นอยู่กับ IIS รุ่นที่คุณใช้ ถ้ามีข้อสงสัยเพียงแค่ลองทั้งสอง:
< system .web>
< httpModules >
< add name = " RaygunErrorModule " type = " Mindscape.Raygun4Net.RaygunHttpModule " />
</ httpModules >
</ system .web> สำหรับ IIS 7.0 ให้ใช้ system.webServer
< system .webServer>
< modules >
< add name = " RaygunErrorModule " type = " Mindscape.Raygun4Net.RaygunHttpModule " />
</ modules >
</ system .webServer>ทุกที่ในรหัสของคุณคุณยังสามารถส่งรายงานข้อยกเว้นด้วยตนเองเพียงแค่สร้างอินสแตนซ์ใหม่ของ RaygunClient และโทรหาวิธีการส่งหรือ sendinbackground อย่างใดอย่างหนึ่ง สิ่งนี้มักใช้เพื่อส่งข้อยกเว้นที่ติดอยู่ในบล็อกลอง/จับ
try
{
}
catch ( Exception e )
{
new RaygunClient ( ) . SendInBackground ( e ) ;
}หรือเพื่อส่งข้อยกเว้นในตัวจัดการของคุณเองแทนที่จะใช้การตั้งค่าอัตโนมัติด้านบน
protected void Application_Error ( )
{
var exception = Server . GetLastError ( ) ;
new RaygunClient ( ) . Send ( exception ) ;
} ยกเว้นข้อผิดพลาดด้วยรหัสสถานะ http
หากใช้โมดูล HTTP คุณสามารถยกเว้นข้อผิดพลาดด้วยรหัสสถานะ HTTP ของพวกเขาโดยการจัดทำรายการรหัสสถานะที่คั่นด้วยเครื่องหมายจุลภาคเพื่อละเว้นในการกำหนดค่า ตัวอย่างเช่นหากคุณต้องการยกเว้นข้อผิดพลาดที่ส่งคืนรหัสการตอบกลับของ Teapot ฉันสามารถใช้การกำหนดค่าด้านล่าง
< RaygunSettings apikey = " YOUR_APP_API_KEY " excludeHttpStatusCodes = " 418 " />ไม่รวมข้อผิดพลาดที่มาจากแหล่งกำเนิดในท้องถิ่น
สลับบูลีนนี้และโมดูล HTTP จะไม่ส่งข้อผิดพลาดไปยัง Raygun หากคำขอมาจากแหล่งกำเนิดในท้องถิ่น คือวิธีการป้องกันการดีบัก/การพัฒนาในท้องถิ่นจากการแจ้งเตือน Raygun โดยไม่ต้องใช้วิธีการแปลง Web.Config
< RaygunSettings apikey = " YOUR_APP_API_KEY " excludeErrorsFromLocal = " true " />ลบข้อมูลคำขอที่ละเอียดอ่อน
หากคุณมีข้อมูลที่ละเอียดอ่อนในคำขอ HTTP ที่คุณต้องการป้องกันการถูกส่งไปยัง Raygun คุณสามารถระบุรายการของคีย์ที่เป็นไปได้ (ชื่อ) เพื่อลบ ปุ่มที่จะละเว้นสามารถระบุได้บนแท็ก Raygunsettings ใน web.config (หรือคุณสามารถใช้วิธีการที่เทียบเท่ากับ RaygunClient หากคุณตั้งค่าในรหัส) ตัวเลือกที่มีอยู่คือ:
สิ่งเหล่านี้สามารถตั้งค่าให้เป็นรายการคั่นด้วยเครื่องหมายจุลภาคที่จะละเว้น การตั้งค่าตัวเลือกเป็น * จะระบุว่าคีย์ทั้งหมดจะ ไม่ถูก ส่งไปยัง Raygun การวาง * ก่อนหลังหรือที่ปลายทั้งสองของคีย์จะดำเนินการสิ้นสุดด้วยการเริ่มต้นหรือมีการดำเนินการตามลำดับ ตัวอย่างเช่นเพิกเฉยต่อ FORMFIELDNAMES = "***" จะทำให้ RayGun ละเว้นฟิลด์ฟอร์มทั้งหมดที่ มี "รหัสผ่าน" ทุกที่ในชื่อ ตัวเลือกเหล่านี้ ไม่ ละเอียดอ่อน
จัดหา RaygunClient ที่กำหนดเองให้กับโมดูล HTTP
บางครั้งเมื่อตั้งค่า Raygun โดยใช้โมดูล HTTP เพื่อส่งข้อยกเว้นโดยอัตโนมัติคุณอาจต้องจัดเตรียมโมดูล HTTP ด้วยอินสแตนซ์ RaygunClient ที่กำหนดเองเพื่อใช้คุณสมบัติเสริมบางอย่างที่อธิบายไว้ในตอนท้ายของไฟล์นี้ ในการทำเช่นนี้ให้รับแอปพลิเคชัน HTTP ของคุณเพื่อใช้งานอินเตอร์เฟส iraygunapplication ใช้เมธอด GeneraterayGunClient เพื่อส่งคืนอินสแตนซ์ RaygunClient ใหม่ (หรือที่สร้างขึ้นก่อนหน้านี้) โมดูล HTTP จะใช้ RaygunClient ที่ส่งคืนจากวิธีนี้เพื่อส่งข้อยกเว้นที่ไม่ได้กล่าวไว้ ในวิธีนี้คุณสามารถตั้งค่าตัวเลือกเพิ่มเติมใด ๆ ในอินสแตนซ์ RaygunClient ที่คุณต้องการ - ข้อมูลเพิ่มเติมเกี่ยวกับแต่ละคุณสมบัติจะอธิบายไว้ในตอนท้ายของไฟล์นี้
ณ เวอร์ชัน 4.0.0 การสนับสนุน MVC ได้ถูกย้ายไปยังแพ็คเกจ NuGet ใหม่ หากคุณมีโครงการ MVC โปรดถอนการติดตั้งแพ็คเกจ Raygun4Net NuGet และติดตั้งแพ็คเกจ Mindscape.Raygun4Net.Mvc NUGET แทน
เมื่อติดตั้งแพ็คเกจแล้วให้ดูที่แพ็คเกจ readme สำหรับคำแนะนำเกี่ยวกับการกำหนดค่า
แพ็คเกจ MVC และ WebAPI NUGET สามารถติดตั้งในโครงการเดียวกันได้อย่างปลอดภัย
ตั้งแต่เวอร์ชัน 4.0.0 การสนับสนุน WebAPI ได้ถูกย้ายไปยังแพ็คเกจ NUGET ใหม่ หากคุณมีโครงการ webapi โปรดถอนการติดตั้งแพ็คเกจ Raygun4net NuGet และติดตั้งแพ็คเกจ Mindscape.Raygun4Net.WebApi Nuget แทน
เมื่อติดตั้งแพ็คเกจแล้วให้ดูที่แพ็คเกจ readme สำหรับคำแนะนำเกี่ยวกับการกำหนดค่า
แพ็คเกจ MVC และ WebAPI NUGET สามารถติดตั้งในโครงการเดียวกันได้อย่างปลอดภัย
สร้างอินสแตนซ์ของ RaygunClient โดยผ่านปุ่ม APP API ของคุณในตัวสร้าง แนบตัวจัดการเหตุการณ์กับเหตุการณ์ DispatcherUnhandleDexception ของแอปพลิเคชันของคุณ ในตัวจัดการเหตุการณ์ให้ใช้วิธี RaygunClient.Send เพื่อส่งข้อยกเว้น
private RaygunClient _client = new RaygunClient ( "YOUR_APP_API_KEY" ) ;
public App ( )
{
DispatcherUnhandledException += OnDispatcherUnhandledException ;
}
void OnDispatcherUnhandledException ( object sender , DispatcherUnhandledExceptionEventArgs e )
{
_client . Send ( e . Exception ) ;
}สร้างอินสแตนซ์ของ RaygunClient โดยผ่านปุ่ม APP API ของคุณในตัวสร้าง แนบตัวจัดการเหตุการณ์กับแอปพลิเคชันเหตุการณ์ ThreadException ก่อนโทรหาแอปพลิเคชันรัน (... ) ในตัวจัดการเหตุการณ์ให้ใช้วิธี RaygunClient.Send เพื่อส่งข้อยกเว้น
private static readonly RaygunClient _raygunClient = new RaygunClient ( "YOUR_APP_API_KEY" ) ;
[ STAThread ]
static void Main ( )
{
Application . EnableVisualStyles ( ) ;
Application . SetCompatibleTextRenderingDefault ( false ) ;
Application . ThreadException += new ThreadExceptionEventHandler ( Application_ThreadException ) ;
Application . Run ( new Form1 ( ) ) ;
}
private static void Application_ThreadException ( object sender , ThreadExceptionEventArgs e )
{
_raygunClient . Send ( e . Exception ) ;
}ใน App.xaml.cs Constructor (หรือจุดเข้าหลักใด ๆ ไปยังแอปพลิเคชันของคุณ) ให้เรียกใช้วิธี Static RaygunClient.attach โดยใช้คีย์ API ของคุณ
public App ( )
{
RaygunClient . Attach ( "YOUR_APP_API_KEY" ) ;
}ณ จุดใดหลังจากเรียกวิธีการแนบคุณสามารถใช้ RaygunClient.current เพื่อรับอินสแตนซ์แบบคงที่ สิ่งนี้สามารถใช้สำหรับการส่งข้อความด้วยตนเอง (ผ่านวิธีการส่ง) หรือการเปลี่ยนตัวเลือกเช่นสตริงตัวตนของผู้ใช้
ตัวเลือกที่มีอยู่ใน WinRT สำหรับการจับข้อยกเว้นที่ไม่ได้รับการจัดการ ณ เวลานี้มี จำกัด มากขึ้นเมื่อเทียบกับตัวเลือกในกรอบ. NET ที่เป็นผู้ใหญ่มากขึ้น เหตุการณ์ UNHANDLEDEXCEPTION จะถูกยกขึ้นเมื่อ XAML ไม่ถูกต้องถูกแยกวิเคราะห์นอกเหนือจากข้อยกเว้นรันไทม์อื่น ๆ ที่เกิดขึ้นในเธรด UI หลัก ในขณะที่ข้อผิดพลาดมากมายจะถูกหยิบขึ้นมาด้วยวิธีนี้และสามารถส่งไปยัง Raygun ได้ โดยเฉพาะอย่างยิ่งรหัสอะซิงโครนัสหรืองานที่ดำเนินการบนเธรดพื้นหลังจะไม่มีข้อยกเว้น
วิธีแก้ปัญหาสำหรับปัญหานี้มีวิธีการ WRAP () สิ่งเหล่านี้ช่วยให้คุณสามารถส่งรหัสที่คุณต้องการเรียกใช้กับอินสแตนซ์ของไคลเอนต์ Raygun - มันจะเรียกมันว่าล้อมรอบด้วยบล็อกลองจับ หากวิธีการที่คุณส่งผ่านจะส่งผลให้มีข้อยกเว้นถูกโยนสิ่งนี้จะถูกส่งไปยัง Raygun และข้อยกเว้นจะถูกโยนอีกครั้ง มีสองโอเวอร์โหลด หนึ่งสำหรับวิธีการที่ส่งคืนโมฆะและอีกวิธีหนึ่งสำหรับวิธีการที่ส่งคืนวัตถุ
อีกทางเลือกหนึ่งคือการใช้ไลบรารี Fody และส่วนขยายของ AsyncerrorHandler สิ่งนี้จะจับข้อยกเว้น Async โดยอัตโนมัติและส่งผ่านไปยังตัวจัดการที่คุณเลือก (ซึ่งจะส่งไปยัง Raygun ดังกล่าวข้างต้น) ดูคำแนะนำการติดตั้งที่นี่จากนั้นตรวจสอบโครงการตัวอย่างเพื่อดูวิธีการใช้งาน
ในกิจกรรมหลัก/รายการของแอปพลิเคชันของคุณให้ใช้วิธี Static RaygunClient.attach โดยใช้คีย์ APP API ของคุณ นอกจากนี้ยังมีการโอเวอร์โหลดสำหรับวิธีการแนบที่ช่วยให้คุณผ่านสตริงตัวตนของผู้ใช้ซึ่งมีประโยชน์สำหรับการติดตามผู้ใช้ที่ได้รับผลกระทบในแดชบอร์ด Raygun ของคุณ
RaygunClient . Attach ( "YOUR_APP_API_KEY" ) ;ณ จุดใดหลังจากเรียกวิธีการแนบคุณสามารถใช้ RaygunClient.current เพื่อรับอินสแตนซ์แบบคงที่ สิ่งนี้สามารถใช้สำหรับการส่งข้อความด้วยตนเองหรือเปลี่ยนตัวเลือกเช่นสตริงตัวตนของผู้ใช้
ในจุดเริ่มต้นหลักของแอปพลิเคชันให้ใช้วิธี Static RaygunClient.attach โดยใช้คีย์ APP API ของคุณ
static void Main ( string [ ] args )
{
RaygunClient . Attach ( "YOUR_APP_API_KEY" ) ;
UIApplication . Main ( args , null , "AppDelegate" ) ;
}นอกจากนี้ยังมีการโอเวอร์โหลดสำหรับวิธีการแนบที่ช่วยให้คุณเปิดใช้งานการรายงานความผิดพลาด iOS ดั้งเดิม
static void Main ( string [ ] args )
{
RaygunClient . Attach ( "YOUR_APP_API_KEY" , true , true ) ;
UIApplication . Main ( args , null , "AppDelegate" ) ;
}พารามิเตอร์บูลีนแรกคือการเปิดใช้งานการรายงานข้อผิดพลาด iOS ดั้งเดิม พารามิเตอร์บูลีนที่สองคือการจี้สัญญาณดั้งเดิมบางอย่างหรือไม่ - นี่คือการแก้ปัญหานักข่าว IOS Crash ที่รู้จักกันดีซึ่งข้อยกเว้นอ้างอิง NULL ภายในการทดลอง/บล็อกสามารถทำให้แอปพลิเคชันขัดข้อง โดยการตั้งค่าพารามิเตอร์บูลีนที่สองเป็น TRUE รหัสที่ได้รับการจัดการจะเข้าควบคุมสัญญาณ Sigbus และ Sigsegv iOS ซึ่งแก้ปัญหาการอ้างอิงค่าโมฆะ การทำเช่นนี้จะช่วยป้องกันข้อผิดพลาดของชนพื้นเมือง Sigbus และ Sigsegv จากการถูกตรวจพบซึ่งหมายความว่าพวกเขาจะไม่ถูกส่งไปยัง Raygun นี่คือเหตุผลที่เราให้สิ่งนี้เป็นตัวเลือก - ดังนั้นหากคุณไม่มีปัญหาใด ๆ กับข้อยกเว้นการอ้างอิง NULL ที่เกิดขึ้นภายในบล็อกลอง/จับและคุณต้องการเพิ่มข้อผิดพลาดดั้งเดิมที่คุณสามารถได้รับการแจ้งเตือนจากนั้นตั้งค่าพารามิเตอร์บูลีนที่สองเป็นเท็จ
ณ จุดใดหลังจากเรียกวิธีการแนบคุณสามารถใช้ RaygunClient.current เพื่อรับอินสแตนซ์แบบคงที่ สิ่งนี้สามารถใช้สำหรับการส่งข้อความด้วยตนเองหรือเปลี่ยนตัวเลือกเช่นสตริงตัวตนของผู้ใช้
ในจุดเริ่มต้นหลักของแอปพลิเคชันให้ใช้วิธี Static RaygunClient.attach โดยใช้คีย์ APP API ของคุณ
static void Main ( string [ ] args )
{
RaygunClient . Attach ( "YOUR_APP_API_KEY" ) ;
NSApplication . Init ( ) ;
NSApplication . Main ( args ) ;
}ณ จุดใดหลังจากเรียกวิธีการแนบคุณสามารถใช้ RaygunClient.current เพื่อรับอินสแตนซ์แบบคงที่ สิ่งนี้สามารถใช้สำหรับการส่งข้อความด้วยตนเองหรือเปลี่ยนตัวเลือกเช่นสตริงตัวตนของผู้ใช้
บนอินสแตนซ์ RaygunClient ให้แนบตัวจัดการเหตุการณ์กับเหตุการณ์ SendingMessage ตัวจัดการเหตุการณ์นี้จะถูกเรียกก่อนที่ RaygunClient จะส่งข้อยกเว้น - ไม่ว่าจะโดยอัตโนมัติหรือด้วยตนเอง อาร์กิวเมนต์ของเหตุการณ์จัดให้มีวัตถุ RaygunMessage ที่กำลังจะถูกส่ง หนึ่งการใช้สำหรับตัวจัดการเหตุการณ์นี้คือการเพิ่มหรือแก้ไขข้อมูลใด ๆ ใน RaygunMessage การใช้งานอีกอย่างสำหรับวิธีนี้คือการระบุข้อยกเว้นที่คุณไม่ต้องการส่งไปยัง Raygun และหากเป็นเช่นนั้นให้ตั้งค่า e.cancel = true เพื่อยกเลิกการส่ง
หากคุณมีข้อยกเว้นภายนอกทั่วไปที่สรุปข้อยกเว้นภายในที่มีค่าซึ่งคุณต้องการจัดกลุ่มโดยคุณสามารถระบุสิ่งเหล่านี้ได้โดยใช้วิธีการหลายพารามิเตอร์:
raygunClient . AddWrapperExceptions ( typeof ( TargetInvocationException ) ) ;ในกรณีนี้หากมีการตั้งเป้าหมาย Exception เกิดขึ้นมันจะถูกลบออกและแทนที่ด้วย Innerexception ที่เกิดขึ้นจริงซึ่งเป็นสาเหตุ โปรดทราบว่า HttpunhandledException และ TargetInvocationException ถูกเพิ่มเข้าไปในรายการข้อยกเว้น Wrapper แล้ว คุณไม่จำเป็นต้องเพิ่มด้วยตนเอง วิธีนี้มีประโยชน์หากคุณมีข้อยกเว้น Wrapper ที่กำหนดเองของคุณเองหรือเฟรมเวิร์กกำลังโยนข้อยกเว้นโดยใช้ wrapper ของตัวเอง
มีคุณสมบัติที่ชื่อ User บน RaygunClient ซึ่งคุณสามารถตั้งค่าเป็น ID ของผู้ใช้ปัจจุบัน สิ่งนี้จะช่วยให้คุณเห็นจำนวนผู้ใช้ที่ได้รับผลกระทบสำหรับแต่ละข้อผิดพลาดในแผงควบคุม Raygun
หากคุณต้องการข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับผู้ใช้ (และความสามารถในการใช้คุณสมบัติการรายงานผู้ใช้ที่ได้รับผลกระทบใหม่เมื่อมีการเผยแพร่) คุณสามารถตั้งค่าคุณสมบัติ UserInfo บน RaygunClient เป็นวัตถุ RaygunIdentifierMessage ใหม่ คลาสนี้มีคุณสมบัติจำนวนมากเพื่อช่วยระบุผู้ใช้ที่ประสบปัญหา
ตรวจสอบให้แน่ใจว่าปฏิบัติตามนโยบายความเป็นส่วนตัวใด ๆ ที่ บริษัท ของคุณติดตามเมื่อใช้คุณสมบัตินี้
ฟิลด์ที่ต้องการเท่านั้นคือตัวระบุ
Identifier เป็นตัวระบุที่ไม่ซ้ำกันจากระบบของคุณสำหรับผู้ใช้รายนี้
IsAnonymous เป็นธงที่แสดงว่าผู้ใช้เข้าสู่ระบบ (หรือระบุตัวตน) หรือไม่ระบุชื่อ ผู้ใช้ที่ไม่ระบุชื่อยังสามารถมีตัวระบุที่ไม่ซ้ำกัน
Email ที่อยู่อีเมลของผู้ใช้ หากคุณใช้ที่อยู่อีเมลเพื่อระบุผู้ใช้ของคุณอย่าลังเลที่จะตั้งค่าตัวระบุเป็นอีเมลของพวกเขาและปล่อยให้ว่างเปล่านี้เนื่องจากเราจะใช้ตัวระบุเป็นที่อยู่อีเมลหากดูเหมือนว่าจะไม่ระบุที่อยู่อีเมล
FullName ชื่อเต็มของผู้ใช้
FirstName ชื่อแรกของผู้ใช้ (หรือต้องการ)
UUID ตัวระบุอุปกรณ์ สามารถใช้เพื่อระบุผู้ใช้ในอุปกรณ์หรือเครื่องจักรที่มีผู้ใช้จำนวนมาก
raygunClient . User = "[email protected]" ;
// OR
raygunClient . UserInfo = new RaygunIdentifierMessage ( "[email protected]" )
{
IsAnonymous = false ,
FullName = "Robbie Raygun" ,
FirstName = "Robbie"
} ; โดยค่าเริ่มต้น Raygun จะส่งเวอร์ชันแอสเซมบลีของโครงการของคุณพร้อมรายงานแต่ละฉบับ
หากคุณต้องการให้ค่าเวอร์ชันที่กำหนดเองของคุณเองคุณสามารถทำได้โดยการตั้งค่าคุณสมบัติ ApplicationVersion ของ RaygunClient (ในรูปแบบ XXXX โดยที่ X เป็นจำนวนเต็มบวก)
เมื่อส่งข้อยกเว้นด้วยตนเองคุณยังสามารถส่งรายการแท็กโดยพลการ (อาร์เรย์ของสตริง) และการรวบรวมข้อมูลที่กำหนดเอง (พจนานุกรมของวัตถุใด ๆ ) สามารถทำได้โดยใช้วิธีการส่งและ sendinbackground ที่หลากหลายมากเกินไป
ผู้ให้บริการ RayGun4Net ใช้การตั้งค่าพร็อกซี Windows เริ่มต้น (ตามที่ตั้งไว้ในแท็บการเชื่อมต่อของ Internet Explorer หรือ Web.config) เมื่อส่งข้อความไปยัง Raygun API หากพร็อกซีของคุณต้องการข้อมูลรับรองการรับรองความถูกต้องคุณสามารถให้สิ่งเหล่านี้ได้โดยการตั้งค่าคุณสมบัติ ProxyCredentials หลังจากอินสแตนซ์ RaygunClient จากนั้นใช้เพื่อส่งในภายหลัง:
var raygunClient = new RaygunClient ( )
{
ProxyCredentials = new NetworkCredential ( "user" , "password" )
} ; คุณสามารถจัดเตรียมคีย์การจัดกลุ่มของคุณเองได้หากต้องการ เราขอแนะนำสิ่งนี้ว่าคุณมีปัญหาเกี่ยวกับข้อผิดพลาดที่ไม่ได้ถูกจัดกลุ่มอย่างถูกต้อง
ในอินสแตนซ์ RaygunClient ให้แนบตัวจัดการเหตุการณ์กับเหตุการณ์ CustomGroupingKey ตัวจัดการเหตุการณ์นี้จะถูกเรียกหลังจาก Raygun ได้สร้างวัตถุ RaygunMessage แต่ก่อนที่จะมีการเรียกเหตุการณ์ SendingMessage อาร์กิวเมนต์ของเหตุการณ์มีวัตถุ RaygunMessage ที่กำลังจะถูกส่งและข้อยกเว้นเดิมที่เรียกมัน คุณสามารถใช้ทุกสิ่งที่คุณต้องการสร้างคีย์และตั้งค่าตามคุณสมบัติ CustomGroupingKey ในอาร์กิวเมนต์เหตุการณ์ การตั้งค่าเป็น null หรือสตริงที่ว่างเปล่าจะปล่อยให้ข้อยกเว้นที่จะจัดกลุ่มโดย Raygun การตั้งค่าเป็นบางสิ่งบางอย่างจะทำให้ Raygun จัดกลุ่มด้วยข้อยกเว้นอื่น ๆ ที่คุณส่งด้วยคีย์นั้น
กุญแจมีความยาวสูงสุด 100
<RaygunSettings apikey="[Raygun4Net api key goes here]" throwOnError="true"/>