How to trace what happens in DinkToPFD?












0














My Asp.Net Core 2.1 app can generate two HTML reports. Each report has a button for outputting the report as a PDF file using DinkToPDF. The button calls a controller for that report that provides all the parameters that DinkToPDF needs and then generates the PDF. An essential parameter is the URL of the page to be converted, which is not the original HTML report but a lookalike from which javascript etc. has been removed.



The first report would output the login page instead of the report data until I put [AllowAnonymous] above the class name. Then it worked fine.



The second report used the files from the first report as a template. In all necessary places everything was renamed appropriately. But even though this page of course has [AllowAnonymous], it will only generate a PDF of the login page.



I can step through the controller code and watch the DinkToPDF params get their values. But when "convert" method of DinkToPDF is called, something goes wrong.



Is there a way to watch inside that method to see why it thinks it must authenticate?










share|improve this question



























    0














    My Asp.Net Core 2.1 app can generate two HTML reports. Each report has a button for outputting the report as a PDF file using DinkToPDF. The button calls a controller for that report that provides all the parameters that DinkToPDF needs and then generates the PDF. An essential parameter is the URL of the page to be converted, which is not the original HTML report but a lookalike from which javascript etc. has been removed.



    The first report would output the login page instead of the report data until I put [AllowAnonymous] above the class name. Then it worked fine.



    The second report used the files from the first report as a template. In all necessary places everything was renamed appropriately. But even though this page of course has [AllowAnonymous], it will only generate a PDF of the login page.



    I can step through the controller code and watch the DinkToPDF params get their values. But when "convert" method of DinkToPDF is called, something goes wrong.



    Is there a way to watch inside that method to see why it thinks it must authenticate?










    share|improve this question

























      0












      0








      0







      My Asp.Net Core 2.1 app can generate two HTML reports. Each report has a button for outputting the report as a PDF file using DinkToPDF. The button calls a controller for that report that provides all the parameters that DinkToPDF needs and then generates the PDF. An essential parameter is the URL of the page to be converted, which is not the original HTML report but a lookalike from which javascript etc. has been removed.



      The first report would output the login page instead of the report data until I put [AllowAnonymous] above the class name. Then it worked fine.



      The second report used the files from the first report as a template. In all necessary places everything was renamed appropriately. But even though this page of course has [AllowAnonymous], it will only generate a PDF of the login page.



      I can step through the controller code and watch the DinkToPDF params get their values. But when "convert" method of DinkToPDF is called, something goes wrong.



      Is there a way to watch inside that method to see why it thinks it must authenticate?










      share|improve this question













      My Asp.Net Core 2.1 app can generate two HTML reports. Each report has a button for outputting the report as a PDF file using DinkToPDF. The button calls a controller for that report that provides all the parameters that DinkToPDF needs and then generates the PDF. An essential parameter is the URL of the page to be converted, which is not the original HTML report but a lookalike from which javascript etc. has been removed.



      The first report would output the login page instead of the report data until I put [AllowAnonymous] above the class name. Then it worked fine.



      The second report used the files from the first report as a template. In all necessary places everything was renamed appropriately. But even though this page of course has [AllowAnonymous], it will only generate a PDF of the login page.



      I can step through the controller code and watch the DinkToPDF params get their values. But when "convert" method of DinkToPDF is called, something goes wrong.



      Is there a way to watch inside that method to see why it thinks it must authenticate?







      asp.net-core






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 23:56









      Scott Pendleton

      53931128




      53931128
























          1 Answer
          1






          active

          oldest

          votes


















          0














          After I thought to look in the Output window, I saw that this was one of those "Qt: Could not initialize OLE" errors. I also found that the database context object being injected into my class was null. Evidently the context was being lost somehow. In the original report, that didn't matter because I had sidestepped EF Core and was accessing the database by old-style ADO-type calls.



          Therefore, in the new report, I replaced all EF Core with ADO-type calls, and the problem went away. Just had to work out some routing.






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291201%2fhow-to-trace-what-happens-in-dinktopfd%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            After I thought to look in the Output window, I saw that this was one of those "Qt: Could not initialize OLE" errors. I also found that the database context object being injected into my class was null. Evidently the context was being lost somehow. In the original report, that didn't matter because I had sidestepped EF Core and was accessing the database by old-style ADO-type calls.



            Therefore, in the new report, I replaced all EF Core with ADO-type calls, and the problem went away. Just had to work out some routing.






            share|improve this answer


























              0














              After I thought to look in the Output window, I saw that this was one of those "Qt: Could not initialize OLE" errors. I also found that the database context object being injected into my class was null. Evidently the context was being lost somehow. In the original report, that didn't matter because I had sidestepped EF Core and was accessing the database by old-style ADO-type calls.



              Therefore, in the new report, I replaced all EF Core with ADO-type calls, and the problem went away. Just had to work out some routing.






              share|improve this answer
























                0












                0








                0






                After I thought to look in the Output window, I saw that this was one of those "Qt: Could not initialize OLE" errors. I also found that the database context object being injected into my class was null. Evidently the context was being lost somehow. In the original report, that didn't matter because I had sidestepped EF Core and was accessing the database by old-style ADO-type calls.



                Therefore, in the new report, I replaced all EF Core with ADO-type calls, and the problem went away. Just had to work out some routing.






                share|improve this answer












                After I thought to look in the Output window, I saw that this was one of those "Qt: Could not initialize OLE" errors. I also found that the database context object being injected into my class was null. Evidently the context was being lost somehow. In the original report, that didn't matter because I had sidestepped EF Core and was accessing the database by old-style ADO-type calls.



                Therefore, in the new report, I replaced all EF Core with ADO-type calls, and the problem went away. Just had to work out some routing.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 14 '18 at 14:48









                Scott Pendleton

                53931128




                53931128






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291201%2fhow-to-trace-what-happens-in-dinktopfd%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)