Meteor's most basic ("todos") example doesn't work properly on my windows 7 - no reactivity - meteor

I've been using meteorjs for quite a while now on linux. But when I installed using the relatively new windows installer, I saw that the most basic example doesn't work on properly on my computer - win7.
The example is at: https://www.meteor.com/try/4
which runs perfectly on my ububtu, but on my windows - I see that no information is inserted into the db and all changes I make (add new "tasks") are only local to that page, and other tabs I opened were also local, and there was no "reactivity" (no information was shared between different pages).
I tried to troubleshoot it in some ways:
I made sure that MONGO_URL is not set, and then I set MONGO_URL to another db, and saw that even though that db reported "connection accepted", the oplog nor the collection updated (tasks) have any new information.
Tried different kinds of browsers (chrome, firefox). Both are latest in version.
See no errors in chrome console.
I am assuming that all writes are made to minimongo, which doesn't pass them on.
Is this somehow a known issue?
Any suggestions?

A few things you can try:
uninstall meteor & any separate instance of mongo (including cmd aliases). download a fresh copy & install. Create a new project in a new folder. If the DB had some weird bugged lock on it, this is sure to fix it.
download robomongo (or use meteor mongo) to insert a new doc & see if it sticks. If it does, you know mongo isn't the problem.
Check that autopublish and insecure are installed. If they are, when you complete step 2 you should see a new doc in the app. If you do, then the DB can communicate to the app, so the problem has to be with the client-side saving to DB. Try a meteor method instead of a direct insert. If you don't see a new doc, then the data from the DB can't reach your client, which means your firewall (yes, it can screw up localhost requests, too) is to blame. Turn it off, make sure ports 3000 & 3001 (mongo) are allowed full access & that it doesn't do anything wonky with websockets.

I would try re-installing Visual Studio 2012 and Python 2.6/2.7, then re-installing Node and then Meteor.

Related

What to use instead of Azure Web Apps to allow installation of google chrome in app environment?

I've just created a feature for our application which generates a powerpoint report from the data a given user has in our system.
In short, the server spawns an instance of google chrome using Selenium's ChromeDriver, and from there scrapes out the charts from our application running in chrome. It was done this way to ensure the charts in the report look exactly the same as they appear in the clients' browsers.
We use Azure Web Apps to host our development and production environments, and while my reporting feature works fine in local environments, it doesn't work once deployed to any other environments, because it depends on chrome being installed, and I can't get it installed in the Azure Web App sandboxed environment.
(you can see this other question of mine for a bit of a reference to where things are going wrong: PowerShell StartProcess: invalid handle )
SO
What I pretty much want to know is, if an Azure Web App environment isn't going to allow me to install google chrome, where should I look next?
It looks like using Service Fabric may allow me to install what I need appropriately (https://learn.microsoft.com/en-us/azure/app-service/choose-web-site-cloud-service-vm), but it seems like a big change to make just to be able to facilitate this small part of the feature.
Another option is to just re-architect the feature so it doesn't depend on the server spawning an instance of google chrome.. but I'd just prefer to avoid that if there's a straightforward way for me to get what I have working.
Ideally, there'd just be a way to get google chrome installed in the given environment, but I've spent a good 10 hours trying to get that to happen now, and it's not looking promising.
There's a couple of solutions which would work - depending on your code and framework dependencies.
IMO - the simplest way would be to build your code in a docker container (that runs the Selenium ChromeDriver) and deploy it either through the container features on Web Apps or run it on demand through ACI (Azure container instances) and have it create the report and drop it in Azure Storage. In a container you have a lot more options - and you have a great amount of options on how to run it. Spinning up an ACI on-demand to do the job can be done in multiple ways (e.g. from Code or through logic-apps or Powershell/Azure automation).
Here are some links on running containers in your App Service:
https://learn.microsoft.com/en-us/azure/app-service/containers/
https://learn.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image
You could start off by building and adding your code from this image: https://github.com/SeleniumHQ/docker-selenium
Other alternatives of course - you could have a VM that you can install and do what you want with on-demand - however - it'd add more management overhead and other implications to think about.
Many options - but in the regual Web App Sandbox - you're limited.
I have found myself this problem with chromedriver.exe needing a real Chrome. As I cannot install Chrome in Azure App Service I am trying a portable version of Chrome. When using the chrome webdriver I tell it where to find the chrome binary.
var options = new ChromeOptions();
options.AddArguments("headless"); // any options you need
options.BinaryLocation = "YOUR CHROME BINARY PATH HERE";
var driver = new ChromeDriver("YOUR CHROME DRIVER PATH HERE", options);
You should be able to copy the chrome portable files as no installation is required. Although it is heavy, 250 MB, because it includes the non portable version inside.
Be sure to use a Chrome version compatible with your ChromeDriver as pointed in the documentation

prevent meteor from downloading package updates

I have a meteor app on my laptop (where I do development work on the app), and I would like to be able to work with it and/or give demos of it in situations where I do not have an internet connection.
How can I prevent meteor from automatically trying to download updates to packages when I run it, so that I can run my app without issues in an "offline" situation?
Note that this is different from the client (browser) being "offline" in the sense that it can't connect to the server. In this situation, the client and server are on the same machine and the client does have access to the server. But the machine is disconnected from the internet, so that attempts to automatically download package updates will incur at least a delay, if not errors, and I'd like to prevent that.
Use METEOR_OFFLINE_CATALOG environment var for that. But I would suggest not to set it up permanently, but rather to use it once.
So if you run meteor like this: METEOR_OFFLINE_CATALOG=1 meteor it shouldn't update any packages or meteor releases.

Windows Explorer not refreshing after CreateFolder (new folder)

We have built a WebDav Service with your Engine and have a one problem when we create a new Folder or File:
The new folder / file is created successfully, but not showing in the Windows Explorer. Only if you press F5, the new folder / file is showing (and the name is already selected to be edited).
This behavior is reproducible even with a blank WebDav Solution.
We can reproduce this on Windows 7 and Windows 8 (8.1) using WebDav .NET Server 3.8 and the latest 3.9.
Is there a way to get around this “refresh-problem”?
I solved this issue but clicking in the folder explorer at view > options > then i restored to default and everything is back to normal.
I assume this issue is in Windows Explorer on a single computer. Most likely the WebDAV server-side code is failing with with some exception. Here are some ideas how to detect what is wrong:
Unmount network connections executing 'net use * /DELETE' in a command prompt, this will unmount WebDAV connections too and simulate 'clean' environment.
Retry reproducing the issue and examine your WebDAV logfile. By default it is located in /App_Data/WebDAV/Logs/ folder. Are there any exceptions in it?
Use Fiddler tool or any other debugging proxy to capture and examine HTTP requests. Are there any failed requests?
In case you are creating a folder/file on one computer using Windows Explorer (Microsoft Mini-redirector driver) or IT Hit Ajax File Browser and expect the files list to refresh automatically on another computer this would not work. Mini-redirector does not support any notifications from server and WebDAV does not submit any notifications, you need to refresh the files list manually to see the new items created.
I found this video on Youtube that explains in very much detail how to fix this problem: https://www.youtube.com/watch?v=UUiCPsQquqc
It is a bit lengthy, so I'll just quickly sum it up here:
The reason for these problems are one or more (broken) Shell Extensions that prevent the refresh of the Windows Explorer
To fix it, open up regedit.exe (requires admin privileges), do a search for the Registry Key "DontRefresh". If it is "1", set it to "0". There might be multiple matches for that Key, so repeat until all Keys have the value "0".
This might not work immediately, you may have to kill and restart your explorer.exe process (easiest to do with the Task Manager). Or you can simply reboot your computer. In my case, it worked immediately.
According to the video, the Keys should only be located under HKEY_CLASSES_ROOT/CLSID, but in my case I could only find such Keys in HKEY_LOCAL_MACHINE/Classes/Wow6432Node/CLSID.
I figured it makes most sense to simply search the complete Registry, it does not take very long.
I tred a lot of hacks, from scanning the system, to recreating the profile to hacking Registry keys and hives.
Finally what worked for me -
Right click on desktop
Select Personalize
Click Themes
Click Change desktop icons
Click Restore default & OK
And instantly it began to auto refresh with a new folder, rename, delete, copy, etc.

not seeing changes after publishing changes

i have an asp.net 2.0 site which is compiled and has been put in the IIS virtual directory
however the new changes cant be seen by some users, and some other users can see the new changes on the web site, i have tried deleting cache and cleaning internet settings and trying with mozilla and chrome and still cant see the new changes.
we also tried cleaning the connection pool on iis.
is there anything more i can possibly do?
Have you confirmed that the machines are hitting the right server? Ping the URL from the "bad" machines and see what it resolves to.
The javascript changes may need browsers to download newer script which was published. (Cached javascript might be older)
For session based changes, if users retained older session, the changes may not reflect until they restart the session.
I found the answer, the server was being split in two machines, and when the server admin updated files only did in one of the servers, not both, now both are updated and running ok, thanks every one for the suggestions.
Two things to try (if Bill Gregg's suggestion doesn't work):
1) Bounce the web server services.
2) Download a freeware app called CCLEANER (formerly called Crap Cleaner....it was seriously called that). This app (when configured correctly) will clean all the junk web files off client machines.

What Mongo GUI tools can I use to connect to my deployed Meteor app?

Tools like MongoLab remote connection and RockMongo require a permanent URL, so the URLs generated by "meteor mongo --url" that are only valid for 1 minute don't work for long.
If you're on a mac I would recommend that fononauts build of MongoHub you put up, the ordinary Mongohub is quite buggy & on Windows use MongoVue which is perhaps the best one i've used of all.

Resources