Embedded Automation Forum

Embedded Automation Forum (http://www.EmbeddedAutomation.com/forum/index.php)
-   mControl Application Notes (http://www.EmbeddedAutomation.com/forum/forumdisplay.php?f=24)
-   -   INFO: Installing the mControl Client for Vista Media Center (VMC) for Vista x64 (http://www.EmbeddedAutomation.com/forum/showthread.php?t=1560)

Ted Singh 04-18-2009 12:12 AM

INFO: Installing the mControl Client for Vista Media Center (VMC) for Vista x64
 
The following guide details how to use the mControl client for Vista Media Center (VMC) on Vista x64 systems:

Step 1 - Confirm if you are using Vista x64
Use "My Computer" properties to determine if you are using a Vista x64 system. If you are, then you need to use this guide. If this is not an x64 systems, you can skip Step 3 (since Step 2 automatically includes the mControl client for Vista Media Center for x86 Vista).

http://www.embeddedautomation.com/im...Properties.jpg

Step 2 - Install mControl or mControl Clients package
Use mControl v2.1 RCGOLD4 or higher (i.e., greater or equal to Build 3391).

If you will be running mControl on this x64 Vista system, then use the mControlSetup.msi install pacakge within the Win2K_XP_Vista directory.

If you already have installed mControl on another machine and simply want to simply run clients on this x64 Vista machine, then use the ClientsAndAddins.msi install package within the Clients_and_Addins directory.

http://www.embeddedautomation.com/im...ge Install.jpg

Confirm your mControl installation:

http://www.embeddedautomation.com/im...ol Package.jpg

Step 3 - Install the mControl clent for Vista Media Center (VMC) for x64 Vista
Use mControl v2.1 RCGOLD4 or higher (i.e., greater or equal to Build 3391).

Whether you have the full mControl package or just mControl clients on this x64 Vista machine, to install the mControl for VMC for x64 Vista, use the mSetupMCMLx64.msi install pacakge within the Clients_and_Addins directory.

http://www.embeddedautomation.com/im...nt Install.jpg

Confirm that mControl client for VMC is available:

http://www.embeddedautomation.com/im...VMC Client.jpg

Other Notes:
- To uninstall mControl, first uninstall the full mControl package or mControl clients (which ever you installed), then uninstall the mControl client for VMC for x64 Vista

Automan 04-18-2009 02:01 PM

Still not working for me.
 
I still can't get it to work in Vista64MCE. I followed the install notes posted above.

If I go to the program files/embedded automation/mcontrol folder and double click on mcontrolmce_vista it launches. However I am still having the issue of the icons not displaying properly in manage zones.

I have opened all ports and have also tried it with both firewalls turned off (whs and vmce client). No luck.

I can access mcontrol via a browser fine, just not the mce interface. If it helps "Mcontrol html UI" in VMC also does not work. Error says I must be connected to the internet to use this feature. I am connected and have confirmed this via mce setting - setup internet.

I don't write code but noticed this. In RemotingClient.config line 4 has
<add key="mControl.WebServiceUrl" value="http://<MYWHSIP>:29991/mServer.asmx" />
for WHS should that be <MYWHSIP>:29991/mcontrol/mserver.asmx?? Just a thought.

I saw something earlier about the cpu. I have a an AMD Phenom Quad core, Vista Home Premium.

Thanks...

brad77 04-18-2009 04:04 PM

Automan,

If you've set up your mControl install with authentication, I believe that the MCE HTML client will not work. Ted or Katrash may be able to correct me if I'm wrong on that one.

As for your image problem, check out this thread. It's also related to authentication. Try setting your "images" folder to anonymous authentication, and the icons should pop up.

docbliny 04-18-2009 04:38 PM

Still doesn't work. What I did was:
1. Uninstalled mControl client add-ins.
2. Uninstalled 64-bit MCML.
3. Checked that no mControl files were left in C:\Windows\Assembly.
4. Installed mControl client add-ins.
5. Installed 64-bit MCML.

Still same error running from within MCE.

I had a look at the content of "mControlMCE_Vista.mcl" and "mControlMCML_Vista.xml" and noticed that it is attempting to hit port 80 on my WHS server. However, port 80 requires authentication and SSL. I removed the authentication SSL requirement (verifying that the "mControl for IE" can access the site). Still no go.

If I start "mControlMCE_Vista.mcl" directly, MCE crashes and I get the following exception:

Server stack trace:
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExcept ionForHR(Int32 errorCode)
at MediaCenter.Extensibility.MediaCenterClientSite.Qu eryService(Guid& guidService, Guid& riid, IntPtr& pvInterface)
at System.Runtime.Remoting.Activation.ActivationServi ces.Activate(RemotingProxy remProxy, IConstructionCallMessage ctorMsg)
at System.Runtime.Remoting.Proxies.RemotingProxy.Inte rnalActivate(IConstructionCallMessage ctorMsg)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invo ke(IMessage reqMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateI nvoke(MessageData& msgData, Int32 type)
at MediaCenter.Extensibility.IEHost..ctor(IIEHostSite site, HWND hwnd, HtmlHost mediaCenterOM, Rectangle rcPos, Boolean treatKeyboardAsRemote, String version, Boolean isUISessionRemoted, Boolean isScreenDataModeWorkaroundNeeded, Boolean fMouseIdle, Boolean isFullScreenExclusive)
at MediaCenter.Extensibility.ExtensibilityHost.Create IEHost(IIEHostSite site, HWND hwnd, HtmlHost mediaCenterOM, Rectangle rcPos, Boolean treatKeyboardAsRemote, String version, Boolean isUISessionRemoted, Boolean isScreenDataModeWorkaroundNeeded, Boolean isMouseIdle, Boolean isFullScreenExclusive)
at System.Runtime.Remoting.Messaging.Message.Dispatch (Object target, Boolean fExecuteInContext)
at System.Runtime.Remoting.Messaging.StackBuilderSink .SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleRe turnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateI nvoke(MessageData& msgData, Int32 type)
at MediaCenter.Extensibility.ExtensibilityHost.Create IEHost(IIEHostSite site, HWND hwnd, HtmlHost mediaCenterOM, Rectangle rcPos, Boolean treatKeyboardAsRemote, String version, Boolean isUISessionRemoted, Boolean isScreenDataModeWorkaroundNeeded, Boolean isMouseIdle, Boolean isFullScreenExclusive)
at System.Runtime.Remoting.Messaging.StackBuilderSink ._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink .PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink .SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleRe turnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateI nvoke(MessageData& msgData, Int32 type)
at MediaCenter.Extensibility.OOPHost.CreateIEHostDele gate.EndInvoke(IAsyncResult result)
at MediaCenter.Extensibility.OOPHost.CreateIEHost(Pag eBasedUCPService ucpService, IIEHostSite site, HtmlHost mediaCenterOM, Rectangle rcPos)
at MediaCenter.Extensibility.IsolatedIEHost..ctor(Pag eBasedUCPService ucpService, HtmlHostingPage page, HtmlHost mediaCenterOM, Rectangle rcPos)
at MediaCenter.Extensibility.HtmlHostingPage.OnLoad(O bject objState)
at MediaCenter.Extensibility.ExtensibilityPage.OnLoad (Object objState)
at ServiceBus.UIFramework.Page.OnLoadEvent(Object objState)
at ServiceBus.UIFramework.XmlControlParser.LoadXMLFil e(String url, Object objState, Boolean fForceBGPage, Boolean fObjectIsPage, XmlControlArgs args)
at ServiceBus.UIFramework.PageBasedUCPService.LoadNew PageInternal(String pageUrl, Type pageType, Object objState, Boolean fShouldPush, Navigate nav, PageTransitionCompleteEvent pageTransitionCompleteHandler)
at ServiceBus.UIFramework.PageBasedUCPService.LoadNew Page(String pageUrl, Type pageType, Object objState, PageTransitionCompleteEvent pageTransitionCompleteHandler)
at MediaCenter.Extensibility.ExtensibilityPage.DoLaun ch(HtmlHostingPageArgs args)
at MediaCenter.Extensibility.ExtensibilityHostedHTMLE ntryPointInfo.Launch(Object objState)
at MediaCenter.Extensibility.ExtensibilityEntryPoint. Launch(PageBasedUCPService ucp, Object objMediaContext, Object[] entryPointParameters)
at MediaCenter.Extensibility.ExtensibilityApplication s.DoNotUseMeToLaunchOldStyleEntryPoints(Extensibil ityItemInfo eii)
at MediaCenter.Home.HomePage.LaunchExtensibilityEntry Point(Object objExInfo)
at Microsoft.MediaCenter.UI.Dispatcher.DispatchNextIt em(Queue queue)
at Microsoft.MediaCenter.UI.Dispatcher.MainLoopBody(F eeder feeder)
at Microsoft.MediaCenter.UI.Dispatcher.MainLoop(LoopC ondition condition, LoopBody body)
at Microsoft.MediaCenter.UI.Application.Run()
at ServiceBus.UIFramework.PageBasedUCPService.Run()
at ServiceBus.UIFramework.UserControlPoint.Launch(Str ing args)

olaf 04-18-2009 06:57 PM

I am having the same problem. Mcontrol is installed on a HomeServer (HP) and I installed the MCE addin on a HP touch screen (64bit)

The IE interface works both from IE and MCE. The MCE interface gives an application error.

I can't find a mcontrol folder in the 64 bit program folder just in the 86 program folder. is that correct?

Let me know if you need me to look at some log files or so.

I am also able to open the mcontrol.exe editor from the MCE PC.

Olaf

Automan 04-18-2009 11:10 PM

x64
 
Brad77,

I have Anonymous Authentication setup for mcontrol site and just checked images and that is likewise set to anonymous. Still no go.

I have disabled firewall on both WHS and VMC. I have rebooted both and still no go. I'm at a loss.

I'm have an AMD Phenom quad core. I see here http://www.embeddedautomation.com/fo...ead.php?t=1557 Ted asked about AMD vs. Intel. Could that be it?

olaf 04-19-2009 05:15 PM

I uninstalled the 64bit addin and downgraded to the old one http://www.embeddedautomation.com/fo...ead.php?t=1353
Now all seems to work again. Did not change anything in my firewall settings or anything else on my pc.

docbliny 04-19-2009 05:45 PM

I tried the previous version and didn't help. However, I reinstalled the current version and then ran Windows Media Center as Administrator and now MCML starts (but I'm getting a "No Server Connection Found, most likely because I've got port 81 as the internal unsecured port on WHS). I only had to do that once and now it starts even without running as Administrator. It's probably trying to write a registry key or something and not handling the (permission) exception.

Brad77/Automan, can you try running Media Center as Administrator once to see if that fixes the issue for you?

//Tomi B.

docbliny 04-19-2009 06:57 PM

SOLVED: Steps to get 64-bit MCML running
 
Disclaimer: Do this at your own risk.

1. Follow the instructions above to install mControl and MCML.
2. Open Registry Editor.
3. Create a new key named "mControl" under "HKEY_LOCAL_MACHINE\SOFTWARE\Embedded Automation".
4. Create a new String Value named "BaseFolder". Set the value to the mControl installation folder ("C:\Program Files (x86)\Embedded Automation\mControl\").
5. Close Registry Editor.
6. Run Windows Media Center as Administrator and start mControl MCML. Once should be enough.


Ted,

I think the main two problems are that the MCML installation package sets the BaseFolder key path based on the installation package product name. In this case it ends up being "mControlMCML 64-bit Platform" instead of "mControl". The other problem is that you are writing log files to a folder under "Program Files" which is a big "no-no" under the Windows software guidelines. There might be something else somewhere regarding what else it does that requires Administrator permissions initially. It seems that there is an exception happening when you don't run as Administrator (you can tell that there is a delay when you open MCML in MCE without elevated permissions and if you have something playing (even in WMP) it'll restart).

Just to add a little more info, your test will fail if you've run Windows Media Center as Administrator even once and then you install/reinstall to do another test.

I had to uninstall both mControl and MCML, and then remove the mControl registry entries under Windows\Current Version\Media Center\Extensibility\ before I got it to give the error again.

Hope this helps,

//Tomi B.

brad77 04-20-2009 12:01 AM

We're getting closer
 
Ok...I got my x64 client working. docbliny, you've been very helpful. I did three things:

1. Ran VMC as an administrator. This enabled me to open the mControl application. It complained about not being able to connect to the mControl server, but at least I wasn't getting the "Invalid Application" error.

2. Added the registry key that docbliny recommended. As he mentioned, the key below "HKLM\Software\Embeddded Automation" was "mControlMCML 64-bit Platform" rather than "mControl."

3. Ran VMC as an administrator once again. After doing this, the logs folder appeared under "C:\Program Files (x86)\Embedded Automation\mControl".

After this, I was able to run the mControl as a standard user and through the Media Center Extender on my Xbox 360. It's worth noting that the log file was not updated when running the mControl client as a standard user or through the VMC extender.

It's possible that doing just steps 2 and 3 above would do the trick, as it allows mControl to create the logs folder and start successfully.

If this is why things aren't working, it has little to do with x64, but more to do with Vista security and User Account Control (UAC). Standard users are not allowed to write to the "Program Files" folder. It seems to me that the plug-in should log to the user's "AppData" folder instead. This would also sidestep any issues with multiple mControl clients running on multiple extenders attempting to write to the same log file.

Nice sleuthing, docbliny. I'm pretty happy to finally see the client load up on my big flat screen LCD in our living room.


All times are GMT. The time now is 09:26 PM.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.