I first discovered the issue when updating a module, then realized it affected any file uploaded outside of Site Assets.
The files I was able to sync were not part of modules I created, they were some other supporting files affected by the issue after its discovery. For example, a few jpg files used by DNN's default CKEdit HTML module.
For loading, there are two methods: I either drop them into the directory with FileZilla if they are not part of a module, or if they are part of a module they're added automatically by installing the .zip through Extensions. In all cases they are 404'd when referenced or, if they are an update to an existing file, the old version stays loaded. I think in all cases these are html references using < script > or < img >. One case of using a third party module called HTML direct to load and render an .html file directly by providing its path and that had the same behavior: ignored updates to the currently used file, 404'd newly added files.
I can verify the files are there, I've checked on them with FileZilla and the azure scm. Currently modules are installing to /site/wwwroot/DesktopModules/ and their scripts go one more down into /Scripts.
I don't have a /portals/_default/DesktopModules folder, the extension installation process has always dropped them into /site/wwwroot/DesktopModules instead.
Thanks Joe, I greatly appreciate all of your help and suggestions.
Returning to this issue with some new information:
My impression currently is the issue is being cause by the website install using its database as the end-all, be-all for what files are truly "on" the system. It explains why using FTP or Azure SCM to upload files doesn't work (not in the database), but putting them through Site Assets or Syncing Site Assets does.
Additionally, I installed a brand new extension today (as opposed to what was causing problems in the past, module updates) and:
1) As expected, parts of it 404'd but
2) The module and its contents exist nowhere in the system. Not in /DesktopModules, not anywhere. It is only registered in the Database in the DesktopModules table.
I confirmed 2 by doing a recursive search over the entire root folder for the module name and found nothing. Normally, I'd expect it to drop into /DesktopModules/ModuleName. Not to beat a dead horse, but I hope this might narrow down the cause of the issue or present some additional avenues to fix it.
I've been using Christoc's Visual Studio compiled module template for as long as I have been developing modules, and it's never given my any problems in the past. Here's what I assume is the manifest file (not too keen on the grittier parts of this so if I'm wrong point me in the right direction) - it's worth noting this issue isn't exclusive to extensions, but it's affecting them the worst:
edit: Well, trying to get it to post in a way where the formatter doesn't remove all my tags
For what it's worth, the module install works on my local test environment.
< dotnetnuke type="Package" version="5.0"> < packages> < package name="DPDashModule" type="Module" version="00.00.01"> < friendlyName>DPDashModule< /friendlyName> < description>John Smith DPDashModule module< /description> < iconFile>~/Images/icon_extensions_32px.png< /iconFile> < owner> < name>John Smith< /name> < organization>John Smith< /organization> < url>website.org< /url> < email>John [email protected]< /email> < /owner> < license src="License.txt">< /license> < releaseNotes src="ReleaseNotes.txt">< /releaseNotes> < azureCompatible>true< /azureCompatible> < dependencies> < dependency type="CoreVersion">07.00.02< /dependency> < /dependencies> < components> < component type="Script"> < scripts> < basePath>DesktopModules\DPDashModule< /basePath> < script type="Install"> < path>Providers\DataProviders\SqlDataProvider< /path> < name>00.00.01.SqlDataProvider< /name> < version>00.00.01< /version> < /script> < script type="UnInstall"> < path>Providers\DataProviders\SqlDataProvider< /path> < name>Uninstall.SqlDataProvider< /name> < version>00.00.01< /version> < /script> < /scripts> < /component> < component type="ResourceFile"> < resourceFiles> < basePath>DesktopModules/DPDashModule< /basePath> < resourceFile> < name>Resources.zip< /name> < /resourceFile> < /resourceFiles> < /component> < component type="Module"> < desktopModule> < moduleName>DPDashModule< /moduleName> < foldername>DPDashModule< /foldername> < businessControllerClass>RTI.CRIDPDashModule.Components.FeatureController, DPDashModule< /businessControllerClass> < supportedFeatures> < supportedFeature>IPortable< /supportedFeature> < supportedFeature>ISearchable< /supportedFeature> < supportedFeature>IUpgradeable< /supportedFeature> < /supportedFeatures> < moduleDefinitions> < moduleDefinition> < friendlyName>DPDashModule< /friendlyName> < defaultCacheTime>0< /defaultCacheTime> < moduleControls> < moduleControl> < controlKey /> < controlSrc>DesktopModules/DPDashModule/View.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle /> < controlType>View< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < /moduleControl> < moduleControl> < controlKey>Edit< /controlKey> < controlSrc>DesktopModules/DPDashModule/Edit.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle>Edit Content< /controlTitle> < controlType>Edit< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < supportsPopUps>True< /supportsPopUps> < /moduleControl> < moduleControl> < controlKey>Settings< /controlKey> < controlSrc>DesktopModules/DPDashModule/Settings.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle>DPDashModule Settings< /controlTitle> < controlType>Edit< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < /moduleControl> < /moduleControls> < /moduleDefinition> < /moduleDefinitions> < /desktopModule> < eventMessage> < processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke< /processorType> < processorCommand>UpgradeModule< /processorCommand> < attributes> < businessControllerClass>RTI.CRIDPDashModule.Components.FeatureController, DPDashModule< /businessControllerClass> < desktopModuleID>[DESKTOPMODULEID]< /desktopModuleID> < upgradeVersionsList>00.00.01< /upgradeVersionsList> < /attributes> < /eventMessage> < /component> < component type="Assembly"> < assemblies> < assembly> < name>DPDashModule.dll< /name> < path>bin< /path> < /assembly> < /assemblies> < /component> < /components> < /package> < /packages> < /dotnetnuke>
< dotnetnuke type="Package" version="5.0"> < packages> < package name="DPDashModule" type="Module" version="00.00.01"> < friendlyName>DPDashModule< /friendlyName> < description>John Smith DPDashModule module< /description> < iconFile>~/Images/icon_extensions_32px.png< /iconFile> < owner> < name>John Smith< /name> < organization>John Smith< /organization> < url>website.org< /url> < email>John [email protected]< /email> < /owner> < license src="License.txt">< /license> < releaseNotes src="ReleaseNotes.txt">< /releaseNotes> < azureCompatible>true< /azureCompatible> < dependencies> < dependency type="CoreVersion">07.00.02< /dependency> < /dependencies> < components> < component type="Script"> < scripts> < basePath>DesktopModules\DPDashModule< /basePath> < script type="Install"> < path>Providers\DataProviders\SqlDataProvider< /path> < name>00.00.01.SqlDataProvider< /name> < version>00.00.01< /version> < /script> < script type="UnInstall"> < path>Providers\DataProviders\SqlDataProvider< /path> < name>Uninstall.SqlDataProvider< /name> < version>00.00.01< /version> < /script> < /scripts> < /component>
< component type="ResourceFile"> < resourceFiles> < basePath>DesktopModules/DPDashModule< /basePath> < resourceFile> < name>Resources.zip< /name> < /resourceFile> < /resourceFiles> < /component>
< component type="Module"> < desktopModule> < moduleName>DPDashModule< /moduleName> < foldername>DPDashModule< /foldername> < businessControllerClass>RTI.CRIDPDashModule.Components.FeatureController, DPDashModule< /businessControllerClass> < supportedFeatures> < supportedFeature>IPortable< /supportedFeature> < supportedFeature>ISearchable< /supportedFeature> < supportedFeature>IUpgradeable< /supportedFeature> < /supportedFeatures> < moduleDefinitions> < moduleDefinition> < friendlyName>DPDashModule< /friendlyName> < defaultCacheTime>0< /defaultCacheTime> < moduleControls> < moduleControl> < controlKey /> < controlSrc>DesktopModules/DPDashModule/View.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle /> < controlType>View< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < /moduleControl> < moduleControl> < controlKey>Edit< /controlKey> < controlSrc>DesktopModules/DPDashModule/Edit.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle>Edit Content< /controlTitle> < controlType>Edit< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < supportsPopUps>True< /supportsPopUps> < /moduleControl> < moduleControl> < controlKey>Settings< /controlKey> < controlSrc>DesktopModules/DPDashModule/Settings.ascx< /controlSrc> < supportsPartialRendering>False< /supportsPartialRendering> < controlTitle>DPDashModule Settings< /controlTitle> < controlType>Edit< /controlType> < iconFile /> < helpUrl /> < viewOrder>0< /viewOrder> < /moduleControl> < /moduleControls> < /moduleDefinition> < /moduleDefinitions> < /desktopModule> < eventMessage> < processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke< /processorType> < processorCommand>UpgradeModule< /processorCommand> < attributes> < businessControllerClass>RTI.CRIDPDashModule.Components.FeatureController, DPDashModule< /businessControllerClass> < desktopModuleID>[DESKTOPMODULEID]< /desktopModuleID> < upgradeVersionsList>00.00.01< /upgradeVersionsList> < /attributes> < /eventMessage> < /component> < component type="Assembly"> < assemblies> < assembly> < name>DPDashModule.dll< /name> < path>bin< /path> < /assembly> < /assemblies> < /component> < /components> < /package> < /packages> < /dotnetnuke>
Yes, they're present locally on my PC and they're present on my localhost where I do test installs. My impression is that my problem site is running the module install process and writing the correct contents to the DB, but not putting the files anywhere.
My guess is the reverse happens when I upload files through FTP: they're present in the directory but since they aren't in the DB, they're ignored. Or if I update old files the updates are similarly ignored as their contents have not changed in the DB.
The module view is visible fine on my site, and I can even fix the "broken" .js problem by taking my script and uploading it through SiteAssets and redirecting my View to it there, but it's not as easy for other references in the code.
These Forums are dedicated to the discussion of DNN Platform.
For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:
Awesome! Simply post in the forums using the link below and we'll get you started.