Deploying solution on Windows Server



  • Unhandled Exception ---> System.AggregateException: One or more errors occurred. ---> System.IO.FileNotFoundException: Could not find file 'd:\temp\meta509ac238-0eda-4050-a5a1-cdba6e3218ec'.

    IIS has Local System access still same problem. Is there anything else we need to do? Why is it writing request but fails to write meta file??



  • @shalinparmar have you allowed jsreport.exe on the windows firewall ? (assuming that you are running this on a windows machine).



  • @jan_blaha @bjrmatos - what path does the jsreport.exe generally sit ?

    On windows server I found it on C:\Windows\Temp.jsreport and on local win 10 machine on C:\Users<username>.jsreport

    is this path decided dynamically or its predefined ?



  • @projectmavericks well it is creating req<<>> files but not meta<<>> file, so not sure it is firewall but more of permission issue with IIS from my analysis so far. what kind of privileges is required on IIS? What are we looking for when JSReport binary is used by ASP.NET core Web API?



  • Have you tried what @jan_blaha & @bjrmatos have suggested ?
    Change the IIS APP Pool Identity to LocalSystem. Can you verify on your windows firewall if the exe has been allowed? Also verify if the exe is existing in the temp folder?



  • @projectmavericks yes I have tried all the tricks to no effect! What I found is that on local environment I was able to replicate and fix the issue by running the AppPool as per the Local System identity but it doesn't work in Dev and other server environments.



  • @projectmavericks Can I turn on some verbose logging to find out where JSReport is failing? Why it is able to write req file but not meta file?



  • @projectmavericks don't worry fixed it.....now need to see what to do with "Local System"? Do you have any suggestion on the least privilege the utility can work with?



  • Yes you can add logging - flip over to https://jsreport.net/learn/configuration for more details.



  • @shalinparmar - nice! what did the trick ?



  • @projectmavericks setting it to "Local System" and "CORRECT APPLICATION POOL" (so silly of me using old app pool due to clogged Dev environment!!) did the trick! phew......but not sure the "Service Account" that we are creating as part of Deployment will get that kind of privilege and hence I am asking what exact privilege is JSReport looking for when deployed on IIS.



  • well, I do not have a answer for that. Perhaps, @jan_blaha or @bjrmatos could give us more insight on this (They have suggested this change on another forum post - https://forum.jsreport.net/topic/224/viewing-studio-reports-in-mvc-framework/25 ). Read up if you want to get the context.

    I also have a question unanswered -
    On what path does the jsreport.exe generally sit ?
    On windows server I found it in C:\ Windows \Temp\ .jsreport and on local win 10 machine it was in C:\ Users \ <username> \ .jsreport

    So maybe a part of the answer to this could also help you in understanding what privileges would be required. ;)



  • @projectmavericks @jan_blaha @bjrmatos I tried putting the JSReport temp to different drives and folders but it seems that it requires "Local System" privilege irrespective of that. Can you please confirm what exact privilege it requires from "Local System" to run this successfully when configured on IIS App Pool.



  • On what path does the jsreport.exe generally sit ?

    You can find it in Temp\jsreport-[v]-[hash]
    The temp directory used for storing temporary files like generated html is Temp\jsreport-temp\
    The storage for socket files required by jsreport.exe is in [current user home]\.jsreport

    The last location requires Local System app pool user otherwise IIS targets home directory somewhere to windows directory where is usually not allowed to write anything. We have an open issue to change this and perhaps unite it https://github.com/jsreport/jsreport-cli/issues/5



  • Thanks @jan_blaha that brings alot of clarity. Thank you!



  • @jan_blaha Thanks for your clarification.

    Instead of "Local System" you can see the "Load User Profile" to true for IIS 7+ on your server, so that your "Service Identity" can create the JSReport socket files in "User Profile" directory and it doesn't get into any other temp folder where you won't have access.



  • Ok, thanks for recommendation.



  • Just announcing that the latest jsreport.Local and jsreport.Binary are now using by default the temp path to store its temp files. You should have no issues running it with iis and default config now.



  • perfect Thanks!



  • Hi,

    i am seeing this error. i am building the html tags based on dynamic data and passing it to rs.RenderAsync method.
    its working locally, but when i deploy on IIS . it doesn't work. application pool is running on service account. can you please help?

    Server Error in '/jsrports' Application.

    Could not find file 'C:\WINDOWS\TEMP\jsreport-temp\meta80f62e86-18a7-4394-b264-f2dcbb3af9ba'.

    Packages version :
    jsreport.Client.2.0.2
    jsreport.Local.1.0.3
    jsreport.Types.1.8.3
    jsreport.Binary.1.8.2
    jsreport.Shared.1.0.1

    thanks,
    Vikram


Log in to reply
 

Looks like your connection to jsreport forum was lost, please wait while we try to reconnect.