Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 16:55
    claassistantio commented #514
  • 16:55
    claassistantio commented #513
  • 16:55
    dependabot-preview[bot] labeled #514
  • 16:55
    dependabot-preview[bot] opened #514
  • 16:55

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Confi… (compare)

  • 16:55
    dependabot-preview[bot] labeled #513
  • 16:55
    dependabot-preview[bot] opened #513
  • 16:55

    dependabot-preview[bot] on nuget

    Bump Microsoft.AspNetCore.Mvc.N… (compare)

  • 16:53
    dependabot-preview[bot] labeled #512
  • 16:53
    dependabot-preview[bot] opened #512
  • 16:53

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Diagn… (compare)

  • 16:48
    claassistantio commented #511
  • 16:47
    dependabot-preview[bot] labeled #511
  • 16:47
    dependabot-preview[bot] opened #511
  • 16:47

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • 14:14
    niemyjski closed #510
  • 14:14
    niemyjski commented #510
  • 14:14
    niemyjski labeled #510
  • 14:14
    niemyjski labeled #510
  • 11:39
    alvin-su opened #510
Blake Niemyjski
@niemyjski
:D
she builds
Sander Rijken
@srijken
nice :)
Lukas Wöhrl
@woehrl01
Hi! Im using JsonConvert.SerializeObject(error.Target) and new ErrorBuilder(JsonConvert.DeserializeObject<Error>(log)) to Pipe some exceptions from client which don't have an Internet connection. Since my update to 2.x those exceptions are all Grouped to the same stack even so they have different Messages. The Stacktrace is also missing in 2.x. Do you have any idea what the problem could be? All these things worked perfectly fine under 1.x
When I open the "Extended Data" page I have a huge field named "_@error" which seems to have the missing stacktrace
Blake Niemyjski
@niemyjski
Can you paste a snippet of the code here
Everything is an event now and that could be the issue
Lukas Wöhrl
@woehrl01
saving is this step:

var error = e.ToExceptionless();

string path = Process.GetCurrentProcess().MainModule.FileName;

var version = FileVersionInfo.GetVersionInfo(path);

error.AddObject(version, "ExeVersion");

string errorAsString = JsonConvert.SerializeObject(error.Target);
var log = new ExceptionLogEntry
{
Log = errorAsString,
OccurenceTime = DateTime.Now
};
_dao.Create(log);

and the sending is doing this:
string log = _dao.First();
var error = JsonConvert.DeserializeObject<Error>(log);
var builder = new ErrorBuilder(error);
builder.Submit();
Blake Niemyjski
@niemyjski
Why not let us handle submission?
Where is dao writing these to?
Lukas Wöhrl
@woehrl01
the dao is storing them in the database
Blake Niemyjski
@niemyjski
And what determines when they are sent
Lukas Wöhrl
@woehrl01
the reason we can't use exceptionless directly are restrictions on the network. not every client is allowed to connect to the internet
so we have an agent which polls the database table end sends them
Blake Niemyjski
@niemyjski
Ah
So give me a few minutes (waking up)
Lukas Wöhrl
@woehrl01
take your time ;)
Blake Niemyjski
@niemyjski
But there's a much better way to do this now :)
Lukas Wöhrl
@woehrl01
by the way, another reason to do this, is that we can are also able to send exceptions which occure in c++. The agent assembls an exceptionless error from parsing a errorreport from a cpp library and sends those over the wire into exceptionless. (so no need to update the clients when we change the parsing ;) )
I know that all of this is easier with 2.x ;)
Lukas Wöhrl
@woehrl01
by the way: the Event Type is error and Error type is unknown
Blake Niemyjski
@niemyjski
So I think your best thing to do would be to implement your own queue
and get rid of all of your custom logic
I'd open our source and take a look at DefaultEventQueue
Then remove the process logic and the enqueue should just store the event to your database..
then remove the process logic :)
Lukas Wöhrl
@woehrl01
hm, sad. because it worked perfectly fine with 1.x :-/
Blake Niemyjski
@niemyjski
we'll you were doing kind of a massive hack around 1.x
in 2.0 everything is dependency injected
so this would be really clean
and work a lot better
with no overhead of serialzing to disk.. it would go straight to the database.
serializer.Serialize(events);
so you'd just need to implement EnQueue and then call dao.Save(serializer.Serialize(ev)); and your done
one line of code
Then on your logic that pulls....
you could do the same thing but implement process that pulls it from the database and deserializes it to type of event and then post it :)
you should be able to do this in about 20 lines of code or less (With the class)
for both sides of it
if you need some help quick I could jump on a meeting with you and help you quick
Lukas Wöhrl
@woehrl01
ok, I'll have a look into this. I hoped I could do this without requiring to change something on the clients ;)
Blake Niemyjski
@niemyjski
second thing you could do is create a relay server
and make no changes
Lukas Wöhrl
@woehrl01
any idea what could be the root of the problem?
Blake Niemyjski
@niemyjski
string errorAsString = JsonConvert.SerializeObject(error.Target);
var log = new ExceptionLogEntry
{
Log = errorAsString,
OccurenceTime = DateTime.Now
};
_dao.Create(log);
Lukas Wöhrl
@woehrl01
just for information purposes ;)
Blake Niemyjski
@niemyjski
your giving it the error.Target as the error string instead of passing in the whole event