I'm trying to set up ASR up to email scheduled reports, but this is the error message I see in the log files.
Exception: ASR.Reports.Items.Exceptions.DatabaseNotFoundException
Message: Exception of type 'ASR.Reports.Items.Exceptions.DatabaseNotFoundException' was thrown.
Source: ASR.Reports
at ASR.Reports.Scanners.DatabaseScanner.get_Database()
at ASR.Reports.Items.QueryScanner.Scan()
at ASR.Interface.Report.Run(Object[] parameters)
at ASR.Commands.ScheduledExecution.runReport(Item item, Boolean force)
at ASR.Commands.ScheduledExecution.<>c__DisplayClass4.b__1(Item i)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at ASR.Commands.ScheduledExecution.EmailReports(Item[] itemarray, CommandItem commandItem, ScheduleItem scheduleItem)
This doesn't make much sense since I'm able to generate reports through the admin interface.
In my ASR config
<setting name="ASR.ConfigurationDatabase" value="master"/>
In my Sitecore Analytics file
<scheduling>
<agent type="Sitecore.Analytics.Tasks.EmailReportsTask, Sitecore.Analytics" method="Run" interval="1:00:00">
DatabaseName>master
In my connection strings config, (which I know works because everything else is working)
<add name="master" connectionString="..." ... />
What am I missing?
ASR will use the ContentDatabase. When you run the report manually, you're running in the context of the "shell" site and it will default to master. When run as a scheduled task, the site will be "scheduler" which has no content database defined by default.
Try adding the following to a config file:
<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<sites>
<site name="scheduler">
<patch:attribute name="content">master</patch:attribute>
</site>
</sitecore>
</configuration>
Openly wondering if this is an issue to address back with the ASR module.
Related
My organization has implemented a web application in Django, and we need to host it on a Windows system. We are using Django 3.2.8 and Python 3.8.8.
The Django project is currently stored here:
C:\inetpub\wwwroot\CED_HRAP
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI" path="\*" verb="*" modules="FastCGIModule" scriptProcessor="c:\python38\python.exe|c:\python38\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<clear />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="base.html" />
</files>
</defaultDocument>
<directoryBrowse enabled="false" />
</system.webServer>
<appSettings>
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\CED_HRAP" />
<add key="WSGI_HANDLER" value="CED_HRAP.wsgi.application" />
<add key="DJANGO_SETTINGS_MODULE" value="CED_HRAP.settings" />
</appSettings>
</configuration>
Our settings.py file is located at
C:\inetpub\wwwroot\CED_HRAP\CED_HRAP\settings.py
We are currently seeing this error message:
HTTP Error 403.14 - Forbidden The Web server is configured to not list
the contents of this directory.
Most likely causes:
A default document is not configured for the requested URL, and
directory browsing is not enabled on the server.
How should we configure the default documents in the web.config file so that it links to Django's internal routing (urls.py)?
We followed the instructions here:
https://github.com/Johnnyboycurtis/webproject
(youtube: https://www.youtube.com/watch?v=APCQ15YqqQ0)
You can see that the web.config file in the above repository does not have any default documents specified. We added them to web.config in an effort to resolve the current error.
Have also looked at several other tutorials and documents on this process, but have not been able to resolve the problem.
Thanks!
This problem occurs because the website doesn't have the Directory Browsing feature enabled. Also, the default document isn't configured. To resolve this problem, use one of the following methods:
Method 1: Enable the Directory Browsing feature in IIS
To resolve this problem, follow these steps:
Start IIS Manager. To do it, select Start, select Run, type inetmgr.exe, and then select OK.
In IIS Manager, expand server name, expand Web sites, and then select the website that you want to change.
In the Features view, double-click Directory Browsing.
In the Actions pane, select Enable.
Method 2: Add a default document
To resolve this problem, follow these steps:
Start IIS Manager. To do it, select Start, select Run, type inetmgr.exe, and then select OK.
In IIS Manager, expand server name, expand Web sites, and then select the website that you want to change.
In the Features view, double-click Default Document.
In the Actions pane, select Enable.
In the File Name box, type the name of the default document, and then select OK.
I've built a simple Django application on my local Windows machine that connects to a SQL Server hosted on Azure by leveraging the Django-Pyodbc-Azure back end. I'm able to connect to the database fine on my local machine and my app runs without issue.
However, I'm not in the process of deploying the application to Azure's app service and I'm running into problems. The deployment itself runs without issue, however the following error message shows up in my logs:
Traceback (most recent call last): File "/home/site/wwwroot/antenv3.6/lib/python3.6/site-packages/sql_server/pyodbc/base.py", line 15, in <module>
import pyodbc as Database
ImportError: libodbc.so.2: cannot open shared object file: No such file or directory
File "/home/site/wwwroot/antenv3.6/lib/python3.6/site-packages/sql_server/pyodbc/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading pyodbc module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading pyodbc module: libodbc.so.2: cannot open shared object file: No such file or directory
My requirements.txt file looks as such:
Django==2.1.4
django-pyodbc-azure==2.1.0.0
pyodbc==4.0.25
pytz==2018.7
And again... this runs fine locally on my Windows machine. But I get this error when I deploy to Azure.
I suspect this has something to do with the Pyodbc backend not being installed correctly on Azure's LINUX based app service? Does anybody have experience resolving this?
I was running into this same issue with the pyodbc package when using the Linux version. I was using the Windows based web-app but had to rebuild from scratch and accidentally selected the Linux version.
Once switching back to the Windows version I used python 3.6 and followed these steps, (based on this blog for deploying a flask app, https://blogs.msdn.microsoft.com/pythonengineering/2016/08/04/upgrading-python-on-azure-app-service/):
Deploy a Django web-app to Azure
In the portal click on "Web App">"New"
Give the web app a name: <webappname>
Set the resource group to be the same as the database
Select the OS to be Windows
Click, deploy - This will take few minutes to deploy
Once deployed you can click on the URL https://<webappname>.azurewebsites.net to see a default azure web page
In your Django project go to settings.py and in the "ALLOWED_HOSTS" add ".azurewebsites.net".
In the Azure portal>webapp, go to Extensions and install python3.6 x64
In Portal > webapp > Application settings, select "Always on".
In settings.py set:
DEBUG = os.getenv('DJANGO_DEBUG') != 'FALSE'
also set other private variables as environment variables (these should then be added as key-value pairs (e.g. DJANGO_DEBUG = FALSE) in Portal>webapp>Application settings>Application settings.
Also, to connect to the SQL database set the database settings to be:
OPTIONS[driver] = 'SQL Server Native Client 11.0'
OPTIONS[MARS_Connection] = 'True'
Make sure you have the following files in the base directory of your django project:
ptvs_virtual_proxy.py
.SkipPythonDeployment
web.config make sure you have key="DJANGO_SETTINGS_MODULE" value "<django-project-name>.settings" (see below)
In your local project, Run pip freeze and put the contents into requirements.txt (see below)
Check that all migration files have been added to git by running git status
Commit and push the changes to your git repo
In the portal, in your new web-app go to "Deployment options"
"Choose Source" -> Follow the steps and click "Finish/Ok" to see the deployment progress and view the logs
Once deployment says "Success", Go to Kudu (http://<webappname>.scm.azurewebsites.net)>Powershell, and run D:\home\python364x64\python.exe -m pip install --upgrade -r D:\home\site\wwwroot\requirements.txt, This should hopefully be successful and only needs to be rerun when you update a package.
Then go back to "Deployment Center" and click on the logs button, and click redeploy, you may also need to restart the web-app to update the environment variables (go to webapp>overview>restart).
For static files, either commit all the admin files after running locally python manage.py collectstatic or you can setup static files like this, then run D:\home\python364x64\python.exe D:\home\site\wwwroot\manage.py collectstatic in Kudu)
web.config file:
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="<django-project-name>.wsgi.application"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot" />
<add key="DJANGO_SETTINGS_MODULE" value="<django-project-name>.settings" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<httpErrors errorMode="Detailed"></httpErrors>
<handlers>
<add name="PythonHandler" path="handler.fcgi" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\python364x64\python.exe|D:\home\python364x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
<rewrite>
<rules>
<rule name="Static Files" stopProcessing="true">
<conditions>
<add input="true" pattern="false" />
</conditions>
</rule>
<rule name="Configure Python" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/static/.*" ignoreCase="true" negate="true" />
</conditions>
<action type="Rewrite" url="handler.fcgi/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
requirements.txt file:
cycler==0.10.0
Django==1.11.15
django-pyodbc-azure==1.11.15.0
djangorestframework==3.6.3
djangorestframework-jsonp==1.0.2
pyodbc==4.0.25
please go to the scm site of your web app, then try to manually install the modules which throw the error.
For detailed steps, please refer to this article.
In Sitecore 8.1 update 2, how do we add a custom web edit button in experience editor to unlock items locked by other users using non admin authors in sitecore.
Getting below error while executing the command.
ERROR Error processing command url:/-/speak/request/v1/expeditor/ExperienceEditor.CustomUnlockItem error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/ExperienceEditor.CustomUnlockItem
at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)
at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)
After correcting the config it was working fine, below is the correct configuration.
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:x="http://www.sitecore.net/xmlconfig/">
<sitecore>
<commands>
<command name="webedit:customlock">
<patch:attribute name="type"><NameSpace>.CustomLock,<Assembly></patch:attribute>
</command>
</commands>
<sitecore.experienceeditor.speak.requests>
<request name="ExperienceEditor.CustomUnlockItem" type="<NameSpace>.CustomUnlockItem, <Assembly>" />
<request name="ExperienceEditor.GenerateFieldEditorUrl" type="<NameSpace>.GenerateFieldEditorUrl, <Assembly>" />
</sitecore.experienceeditor.speak.requests>
</sitecore>
</configuration>
I have Django app deployed in Azure Web App.The app is working correctly in development using:
manage.py runserver
The problem comes when the app is deployed and I have to confirm my registration from email, the URL is something like that:
http://testApp.azurewebsites.net/activate/InRoY4Jua1BhYnYuYmci:1b4pyC:R2Gak--Jwgl0z5gqb0mF6a9OPfU/
I got this error:
The request could not be understood by the server due to malformed syntax.
So after removing ":" from the URL the request works(it gives error for invalid activation link)
How could I allow my azure app to use ":" in my urls?
Solution thanks to benjguin!
Ended up using:
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="<,>,*,%,&,\,?" />
<compilation debug="true" targetFramework="4.0" />
</system.web>
This way I only ignore colon(":") from the invalid characters.
WARNING: the default configuration filters potentially dangerous URLs. The following will disable this protection. Do that knowingly.
You could replace this portion of the web.Config
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
by this one
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
<compilation debug="true" targetFramework="4.0" />
</system.web>
Explanations are available here: https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx
You can edit the web.Config file from testApp.scm.azurewebsites.net (same credentials as for portal.azure.com), Debug Console, CMD, then cd site\wwwroot. Scroll down to web.Config, you'll find a logo with a pen on the left that will open a text editor in the browser.
We are experiencing cpu problems on our production servers. After profiling with the jetbrains cpu profiler, we have noticed that some functions in the assembly Sitecore.Analytics were executed.
This is somewhat strange because we have disabled all analytics related configuration in de config files.
After looking into the /sitecore/admin/showconfig.aspx we noticed that there are still a lot of Sitecore.Analytics related configurations in this config while these are deactivated in our config files.
For example
In the file /App_Config/Include/EventHandlers.config the configuration looks like this:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<events timingLevel="custom">
</events>
</sitecore>
</configuration>
When looking into the showconfig.aspx it looks something like this:
<events timingLevel="custom">
<event name="forms:save"/>
<event name="item:saved">
<handler type="Sitecore.Analytics.Data.Items.ItemEventHandler, Sitecore.Analytics" method="OnItemSaved"/>
<handler type="Sitecore.Analytics.Automation.Data.Items.ItemEventHandler, Sitecore.Automation.MarketingAutomation" method="OnAutomationStateChanged"/>
</event>
<event name="item:deleted">
<handler type="Sitecore.Analytics.Automation.Data.Items.ItemEventHandler, Sitecore.Automation.MarketingAutomation" method="OnAutomationStateChanged"/>
</event>
<event name="media:request">
<handler type="Sitecore.Analytics.Media.MediaRequestEventHandler, Sitecore.Analytics" method="OnMediaRequest"/>
</event>
</events>
Does anyone has an idea why these are still returning in the showconfig.aspx?
Is there a way to fully delete/disable the sitecore analytics module?
Yes. Rename the 3 configuration files for Sitecore.Analytics in your /App_Config/Include directory to something other than *.config
The 3 files are:
Sitecore.Analytics.config
Sitecore.Analytics.ExcludeRobots.config
Sitecore.Analytics.RobotDetection.config
(could vary a little bit by version, but they all start with Sitecore.Analytics).
Rename them to something like:
Sitecore.Analytics.config.disabled
Sitecore.Analytics.ExcludeRobots.config.disabled
Sitecore.Analytics.RobotDetection.config.disabled
(could vary a little bit by version, but they all start with Sitecore.Analytics).
Until sitecore version 72, there are only 3 files with Sitecore.Analytics prefix. In version 75, there are 17 and in version 8 there are 20 config files with Sitecore.Analytics prefix.
I used to confirm with sitecore support that you can change the setting of Analytics.Enabled in Sitecore.Analytics.config will disable Analytics
<setting name="Analytics.Enabled" value="false" />
Or only rename one file Sitecore.Analytics.config which contain this setting.
Did you try to User WFFM ?
There also analytics part:
Sitecore.WFFM.Analytics.config
and disabling it causes this fault:
22992 14:49:10 WARN Value cannot be null. Parameter name: owner
Exception: System.ArgumentNullException Message: Value cannot be null.
Parameter name: owner Source: Sitecore.Kernel at
Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String
argumentName) at Sitecore.Diagnostics.Log.Warn(String message,
Object owner) at Sitecore.WFFM.Core.Extensions.Warn.IsNull(Object
obj, String name) at
Sitecore.WFFM.Analytics.AnalyticsTracker.get_SessionId() at
Sitecore.Form.Core.FormDataHandler.ExecuteSaveActions(ID formId,
ControlResult[] fields, ActionDefinition[] actions) at
Sitecore.Form.Core.FormDataHandler.ProcessData(SimpleForm form,
ControlResult[] fields, ActionDefinition[] actions)
So it cannot be disabled.