How can I test Windows Error Reporting? - windows

My company participates in Windows Error Reporting via Winqual. We'd like to add some additional data to our crash reports, using WERRegisterMemoryBlock. Obviously we'd like to make sure this is working before we ship our next version. How can we test it?
Is there a way to locally preview precisely what is going to be sent? Does this realistically reproduce what we are going to be able to retrieve from Winqual?
Alternatively, can we generate a real report from a developer machine, then retrieve the report from Winqual? How would we distinguish this test case from the rest of our Winqual data?

[...] can we generate a real report from a
developer machine, then retrieve the
report from Winqual?
build a special test version of your application
upload a product mapping for this test version to WER
crash the test version on a machine with error reporting enabled
check Winqual, after a couple of days a report should show up
if the report does not come with CAB data already, enable additional data request (in Winqual)
crash the test version again on a machine with error reporting enabled
check Winqual, after a couple of days a report with CAB data should be waiting for you
download the CAB data and check if/that it contains what you need (you will need to use WinDbg to get the full picture, VS is not as thorough with minidumps as WinDbg)
How would we distinguish this test
case from the rest of our Winqual
data?
give the test version a special name and version (EXE name and *.rc)
just using a different "product name" and "product version" (=WER friendly names) is not enough to get an extra event ID / bucket, but an extra EXE name plus "Product Name" for the application mapping should do the trick

The best test would be to map a test only version of your product. You can verify that the expected information is present and then make sure you change the version and upload a new product mapping file before shipping

Related

How to display in the report last modification date of report design file?

I am developing my report and I would like to trace what is the last version of the report deployed on the server.
I was thinking about checking last modification date of the report but still I have not idea how to do it in BIRT. Do you have any other ideas how to do that?
I do two things,
First:
Use naming convention. All reports in the same family start with the family identifier in this case CoM (Configuration Management, which is a module in the tool be reported on) followed by a descriptive name of the report.
CoM_ProductType.rptdesign
This is the name used for all production versions of the report. Drop it in to where ever you store production versions (copy and replace) and existing links continue to function.
Second
Use a version Naming convention and track your changes and updates in the description attribute of the report. This report has 3 version, Only the A3 version was promoted to production, the others were points during design and build. I also track the report request number (C0000538688) and other significant changes.
CoM_ProductType_A1.rptdesign
CoM_ProductType_A2.rptdesign
CoM_ProductType_A3.rptdesign
I save all the old version in an archive folder, that way when 2 weeks later the client decides they really did not want what they thought they wanted and start asking "can you change it back?" I just look through the notes in the description, go to the archive and pull up their last favorite version and redeploy it to production.

Azure Reporting

I have Main SSRS report with few drill down reports calling same main report with parameters. It works fine in Regular SSRS. When I upload the same report on Azure the main report works fine without problem. When I click on the drill down links it keeps on giving error saying The Item "reportname" cannot be found. Tracing id is : (rsItemNotFound). What change I need to make in the SSRS to have the drill down report work in Azure environment.
There shouldn't be a need to change anything between between regular SSRS and Azure Reporting.
I had a simular problem once. In my case it happened since I renamed the report at one point, but the drill down action was still using the old report name. Maybe you have a simular problem?
Also, check out the Azure Reporting limitations over here (in case your report happens to use an unsupported feature like RDCE)

VSTS Load test reports

We've setup some different load tests and need to generate/send the result pr. e-mail, a link, pdf or similar. The output and metrics are saved to a database (resultstore), but I haven't been able to find too much information on how to generate a report without having visual studio. One thing that comes into mind, is creating a custom report in reporting service (any one know of existing reports I could use?).
Any thoughts?
Thanks
Ended up with creating a report myself using reporting services. If I can make generic enough, I'll post it here.

Getting VB6 to reveal which component doesn't have a design time license installed

I've inherited a VB6 project that I'm trying to "Make".
The build fails on the "Making EXE" step with a licensing error:
License information for this component not found.
You do not have an appropriate license to use this functionality
in the design environment.
How can I figure out which component is missing the license?
The project has about 15 references; a mixture between commercial and Microsoft. I've installed development versions / licenses for all the obvious references - and checked that I can compile their sample apps successfully.
Of the remaining 13 odd references; how I can get more information as to which component is throwing the licensing error?
Any tips / techniques on how to get a more verbose error message would be greatly appreciated!
It's worth trying both the Microsoft fixes - one and two - for this error, in case you've run into one of the known issues.
If that doesn't work, open the form designer for every single form in the VB6 IDE. Look out for an error message box on displaying a form. When this error is displayed, the IDE writes a log file formname.log that gives more information on which control caused the problem.
Create a new, empty application with all the same references
Confirm that you still have the same problem
Delete the second half of the references
If you still have the same problem, then the problem is with the references which remain. Go to 3
If not, then the problem is with the references you deleted. Put them back. Delete one half of those you put back. Go to 2.
Basically, just a binary search, except it's really "binary delete".
All of the links of all of the answers are broken... And, some of us are still trying to either maintain or convert old VB6 applications (or both).
A somewhat useful tool was Process Monitor by Mark Mark Russinovich of Microsoft (it is sourced directly off of Microsoft.com and has been around for years). It allows you to monitor all resources used by the computer system wide, and allows you to filter that down to individual resources, processes, etc.
The useful bit is to start the program, and click the "Filter" button from the toolbar (Ctrl-L). From there, you need to add a rule. Select Path that begins with and that should be to the value "HKCR\Licenses". That is in the HKEY_CLASSES_ROOT section, where the Active-X components licensing information is. These should be set to Include.
Click Ok, and then click Clear on the toolbar (Ctrl-X) to clear all current events to reset the state. Events should already be populating that match that rule.
Then, invoke your build. To cut down on clutter, I used the command:
"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /make <project file> /outdir <exe dest dir>
Once the compile runs, the build should fail with the same message, but simply open the Process Monitor, and you can see that last key that tried to read and failed. The UUID that says not found is the UUID where the license should reside.
From there, you can:
If your license allows, copy that value from a working PC and install it into the failing PC.
Google that ID, to see if there are instructions on how to obtain the correct
license (such as install it from one of the .REG files from the installation media)
Obtain and install the license some other way
While it doesn't tell you exactly what component corresponds to that UUID, it at least lets you get the specific UUID that is failing, which is further than any of the other current answers can do in their current state.
Try This
http://support.microsoft.com/kb/194751/EN-US
It will fixed VB6.0 Design Time License

Does CrystalReports have diagnostic logging? Certain fields won't show up when printed

I am using the Crystal Reports that comes with Visual Studio 2008
Here is my problem. I have a simple little command line utility that generates a single crystal report. It
Connects to a database
Gets a dataset out of a stored procedure. The dataset is always one table with one row.
Sets the dataset as the report's DataSource
Depending on command-line flags either prints to the default printer, emails, or saves the report as a pdf
The app is used something like this:
c:\> GenerateReport 1000 1345 1 email=me#somewhere.com pdf=c:\temp\ print
Where the first 3 arguments specify parameters for the stored procedure and the other arguments are optional but tell the utility what to do with the report. Very simple stuff. Works great, and has been for some time.
Except that since upgrading crystal reports (from whichever version was with vs2003) its been a little wonky. ONLY on the production site and ONLY when the report is printed, several (but not all) of the fields on the report are left blank!
This is especially confounding because the report is instantiated only once and all the data on report is coming from the DataSet - I have no report parameter fields. And the dataset is fetched and set as the datasource only once at the application start. After that I am simply calling report.PrintToPrinter, report.Export, or report.ExportToStream on the same instance depending on whether I want to print, export or email respectively.
What this means is that if I run the utility with the print and email=me#mycompany options the email that I get and the report that is printed are from the EXACT SAME ReportClass instance. Yet the same values that are consistently missing when printed are visible when the report is emailed or saved to disk.
Even worse, I can take the exact same executable. Move it to my development computer, point the config file at the production database and it prints to my local printer with all the values filled in!
I'm really quite stumped as to how to investigate this further - it seems like something is going on inside of CrystalReports. Is there some sort of diagnostic mode or logging mode that I can turn on that might give me a clue how to fix this?
To first of all answer your question, NO, there is no diagnostics logging, other than what you see from the report and any exceptions that arise.
As for what might be wrong, if the problem ONLY occurs when it's printed, it HAS to be related to printer drivers and/or fonts. It can not be anything else. For a for-sure way to fix the report to print on the production printer... install Crystal Reports on the computer that has the production printer installed and open/format/test/save the report against that SPECIFIC printer. That will fix the issue. And of course, remove Crystal Reports when you are done fixing the report.
If the report is running fine and the output is incorrect in terms of what gets printed, and no other errors happen, it HAS to be a compatibility issue with the printer. Nothing else.

Resources