Open Monkey777 opened 5 years ago
I'm in need of the exact same thing. I know the very basics of SQL, ASP.NET and IIS but I am really struggling to get my first Display Monkey database to run in a browser. A full installation guide would be really helpful. The installation guide on the Display Monkey website makes a lot of assumptions about the user/reader but doesn't list any prerequisite requirements, like: A working knowledge of SQL databases A working knowledge of the webserver IIS A working knowledge of Microsoft SQL Server Management Studio The knowledge to install and setup all of the above
You don't even realise you need any of the above until you get to each next step and then realise you have to go back a step and learn/familiarise your self with all of the above, one by one.
If anyone out there has, or would be willing to collate a full installation guide, I would be very grateful. I would be willing to help in any way I can, even if it's just collating someone else's knowledge into a manageable document/walk through. Monkey777, perhaps we could put our heads together and help solve eachother's problems? I would be happy to setup a screen sharing session with you if you think it will help?
I can try to elaborate on the instruction found on displaymonkdy.org but it would be helpful to understand what step or steps you are struggling with.
Hi Michael... That sounds great, i’m struggling with the asp/IIS and sql part...
Kentonadmin that sounds great, I deleted the server again, but would try to install a new one next week...
As with the others, I'm new to IIS and setting up MS SQL. I can follow instructions. I am primarily interested in getting DM up for a demo. After that, I'll have time to dig into the details. Places where more detail in the setup guide would be helpful to someone new to this (like me) are:
What is the URL for the app? http:\localhost gives the II7 page. http:\localhost\displaymonkey gives "Object reference not set to an instance of an object."
[NullReferenceException: Object reference not set to an instance of an object.] DisplayMonkey.DataAccess.get_ConnectionString() +59 DisplayMonkey.DataAccess.ConnectionWrap(SqlCommand cmd, Action action) +53 DisplayMonkey.Display.get_AutoLoadMode() +253 DisplayMonkey._Default.Page_Load(Object sender, EventArgs e) +167 System.Web.UI.Control.LoadRecursive() +70 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3177
I'm more than willing to develop a guide for the initial install if I can get some help getting through it.
Hi Rhummel,
1-2, ASP.NET and .NET are the same things. Display Monkey relies upon features introduced in version 4.5 but any subsequent version will work as well.
4 Yes
This may vary depending on the version of SQL but from my experience, SQL Mgmt Studio is part of the installation of SQL server
The name of database and database users can be whatever but the import thing is obviously to add the chosen database name when adjusting the web.config file.
if you used the default folder for IIS i.e. C:\inetpub\wwwroot\ the address from the local computer should be http:\localhost\displaymonkey and http://localhost/displaymonkey_managment. If accessing from any other computer on your network it would be http://myserverwhereDMisinstalled/displaymonkey
The error indicates that the connection string inside web.config isn't correct. Your Initial Catalog (i.e. DM database name) should look something like this: initial catalog=DisplayMonkey; so get rid of the leading and the two closing quotes ("" )
Thank you for the reply, Michael. I'm going to add my notes here as I go to possibly help anyone else reading this. 1&2 - Downloading .NET 4.5 today gives you 4.7 but it still shows up as 4.0.x. Here's what I did to verify that a correct version is installed. cd \Windows\Microsoft.NET\Framework Look for a version 4.0.x. On my system it was 4.0.30319. cd 4.0.30319 .\msbuild.exe -version The current "real" version will display along with the "alias" version that will eventually show in IIS.
SQLEXPR_x64_ENU.exe - Only the SQL Express program SQLEXPRWT_x64_ENU.exe - SQL Express with tools (WT) (includes Mgmt Studio) SQLEXPRADV_x64_ENU.exe - SQL Express advanced, includes Mgmt Studio and advanced tools
When installing IIS, what features should be enabled over and above the default? Here are the options I've chosen. Did I omit anything that's required?
I believe that ASP.NET and Windows Authentications are the only ones needed to run DM. IIS Management Console is also needed in order to follow the installation instruction on creating applications in IIS.
Thank you, Michael.
In the screen shot in the install procedure, the converted applications are shown in a directory structure that is not produced (automatically) by the copying in step 1. Is it necessary to duplicate this structure by creating "apps" and putting the apps under there?
No, it does not matter, in the screenshot, the URL will be http://localhost/apps/displaymonkey_managment if app is created directly C:\inetpub\wwwroot\ it will be http://localhost/displaymonkey_managment
I got pulled away for a few days, but am back on this now.
I completed the IIS and SQL install and am at the point where I'm converting the folders to applications. My "Add Application" dialog looks like this.
Note: The Windows Authentication option is not in this dialog; it's in the IIS section's Authentication icon. Select the application in the Connection pane and then set the authorization.
After this step (but before creating the database), I get the following message when I try to access either page. This may be normal, but the line at the bottom "ASP.NET is not installed..." concerned me.
In the step, "Create a new SQL user named DisplayMonkey and set the Membership to db_owner," what type of user is this? SQL user with login or SQL user without login? (Non-SQL users, like me, are not familiar with the distinction.
Reading later in the instructions, it mentions a login. But if I try to create the user "DisplayMonkey", I get an error. Should I be using the dbo user to associate with the new login? Is "dbo" created by the script?
I got pulled away for a few days, but am back on this now. I completed the IIS and SQL install and am at the point where I'm converting the folders to applications. My "Add Application" dialog looks like this.
Note: The Windows Authentication option is not in this dialog; it's in the IIS section's Authentication icon. Select the application in the Connection pane and then set the authorization.
After this step (but before creating the database), I get the following message when I try to access either page. This may be normal, but the line at the bottom "ASP.NET is not installed..." concerned me.
Setting up windows authentication is done by selecting the icon "Authentication" in the IIS management console available once you converted the folder to an application. From there disable Anonymous and enable Windows Authentication.
In the step, "Create a new SQL user named DisplayMonkey and set the Membership to db_owner," what type of user is this? SQL user with login or SQL user without login? (Non-SQL users, like me, are not familiar with the distinction.
There are two types of authentication within SQL, Windows (Active Directory) and SQL. When creating a new account under the Security - Logins node in SQL management studio you will see these two options. Select the "SQL Server Authentication", enter a password, disable password expiration and policy. Under "User Mapping" select the DM database and select "db_owner" under "Database Role Membership..."
Finally got it running. I want to emphasize that there is nothing wrong with the application. It was a unfamiliarity with IIS and SQL. Here's the guide.
Summary of environment: 0.1. Windows Server 2012 R2 in a Hyper-V VM. 0.2. Microsoft SQL Server 2014 Express. 64-bit version. 0.3. Installed .NET 4.7 0.4. Machine name is KE71DM. Logged in as a local administrator account that is to be associated with the DisplayMonkey instance.
Step 1: Copy Applications 1.1. Unzipped the DM_1.6.1.189-1.zip file to the desktop. 1.2. Copy the folders DisplayMonkey and DisplayMonkey_Management to C:\inetpub\wwwroot. 1.3. Set folder permissions on the copied folders to Everyone = full access. (For testing purposes.)
Step 2: Create Applications 2.1 Launch Internet Information Services (IIS) Manager. 2.2 Under “Connections,” expand KE71DM. Right-click “Application Pools.” Select “Add Application Pool.” Set name = “DisplayMonkey” Set .NET Framework version = v4.0.30319 Set Managed Pipeline mode = Integrated Check “Start application pool immediately” 2.3 In “Application Pools,” right-click the DisplayMonkey pool and select Advanced Settings. Under “Process Model,” select “Identity.” Select the browse button to open the Application Pool Identity dialog. Under “Built-in account,” select “NetworkService.” Click OK. Click OK. 2.4 In the Connections pane of IIS Manager, expand Sites | Default Web Site. Right-click the DisplayMonkey folder and select “Convert to Application.” Under “Application Pool,” select the pool created in Step 2.3. Click OK. Right-click the DisplayMonkey_Management folder and select “Convert to Application.” Under “Application Pool,” select the pool created in Step 2.3. Click OK. 2.5 In the Connections pane of IIS Manager, select the DisplayMonkey_Management application created in step 2.4 In the /DisplayMonkey_Management Home pane, in the IIS section, open the Authentication feature. Set “Anonymous Authentication” to disabled. Set “Windows Authentication” to enabled. Leave “ASP.NET Impersonation” and “Forms Authentication as disabled. The default settings for /DisplayMonkey authentication should be enabled for Anonymous and Forms, and disabled for ASP.NET and Windows.
Step 3: Create Database
3.1 Launch “SQL Server 2014 Management Studio.” (SSMS)
3.2 Log in to SSMS using Windows Authentication. Click Connect.
3.3 In the Object Explorer panel, under the default
Step 4: Configure Database Access 4.1 In Windows Explorer, navigate to the root folder of the Display Monkey application directory you created in step 1.2. This would be C:\inetpub\wwwroot\DisplayMonkey if you have used the defaults in this guide. 4.2 Using a text editor, open the file web.config in that folder. 4.3 Change the entry “Data Source=(local)” to the SQL server name and instance where you created the Display Monkey database in step 3.3. The string should be formatted as SERVER\INSTANCE. If you’re using the default instance of SQLEXPRESS on a host named KE71DM, the Data Source string will look like “KE71DM\SQLEXPRESS” without the quotes. Do not lead the server name with \. If the database is on the same machine, use localhost\SQL 4.4 In the same entry, change the entries for User ID and Password to reflect the values you set in step 3.6. 4.5 In the same entry, change the value for “Initial Catalog” to be the name of the database created in step 3.4.
This should allow the application to run. If it doesn’t and the web page displays the error: Handler “PageHandlerFactory-Integrated” has a bad module “ManagedPipelineHandler” in its module list, do the following: It turns out that this is because ASP.Net was not completely installed with IIS. Execute the following command at the command prompt: %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i If I had been on a 32 bit system, it would have looked like the following: %windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe –i
Dear @rhummel ! Thanks for taking time and effort to document the steps. This will definitely help other people trying to spin up DM, especially those with limited technical expertise. Appreciate this contribution very much. Perhaps Fuel9 team should incorporate this in to the installation procedure.
After working with DisplayMonkey for a day, I couldn't be more impressed. The fit and finish of this program is outstanding. Many places where I thought, "It would be great if I could just..." and the option was right there. The performance is great, as well.
Thanks so much for making this available.
@rhummel I could kiss you. I have been working on a very long and labor intensive project. I have very basic IIS and SQL knowledge and initially felt setting up DM would be a breeze. HAH, not so much. I originally didn't realize the SQL was required for setup, since the main SQL I want to display I wanted to link DM to my Azure which I have a very extensive Power BI that I would like to display. So I had thought the local SQL didn't apply to me. Thank you so much for these instructions it was a lifesaver and timesaver. I have set up multiple Grafana, Plot.ly, Docker and MANY more servers only to find out they can not handle or visualize the amount on queries I want. With DM it does EXACTLY what I need. I am so close I can taste it, I am just having an issue getting the DisplayMonkey login using local SQL auth. I am getting
System.Data.SqlClient.SqlException: Login Failed for user 'DisplayMonkey'
The SQL (for DM) is local, and I have gotten the same issue declaring it as localhost\instance and server\instance. I have a feeling it has something to do with the connection string within wwwroot\DM we.config
<add name="DisplayMonkeyDB" connectionString="Data Source=LDF-SQL-TEST\DMSQL;Initial Catalog=DisplayMonkey;Persist Security Info=True;User ID=DisplayMonkey;Password=Cheese232" providerName="System.Data.SqlClient" />
SQL Login DisplayMonkey set to SQL Server Auth, Default DB=DisplayMonkey and nothing else on General page. User Mapping is set Map to DB-DisplayMonkey USER-DisplayMonkey SCHEMA-dbo with db_owner and public Connection- Server: LDF-SQL-TEST\DMSQL Connection: LDF-SQL-TEST\Administrator
Any help would be awesome!
I figured it out...... Without this tutorial, I would probably be bald from hair-pulling frustration. Not at all due to Display Monkey, just the fact this is around the 8th complete server I have had to start trying to accomplish the same thing. I am now completely away from my comfort zone of Linux with graphical tools such as R. It has been a frustrating road and I am forever grateful of this list
@Mentor1337 , would you please share what the problem was, in case someone else ends up in the same predicament?
Update - Ok! I have DisplayMonkey working with the demo data and premade canvases, etc. For whatever reason, I am having an issue with DisplayMonkey_management. I am getting a Runtime error when attempting to open the webpage. Web.config reflects the correct/working SQL connection string from DM. Is there more within the config file that I have missed to correctly use DM_M?
Absolutely! After following the tutorial I believe it was my error regarding the connection string that messed it up. The original/default connection string is formated as such,
<add name="DisplayMonkeyDB" connectionString="Data Source=(local);Initial Catalog="DisplayMonkey";Persist Security Info=True;User ID=DS;Password=ds.1234" providerName="System.Data.SqlClient" />
With double colons, some confusing quotes, etc. I have run into issues where opening with a certain text editor can mess up the formatting. I had modified the connection string to (what I thought) was correct, this is what my incorrect connection string looked like.
<add name="DisplayMonkeyDB" connectionString="Data Source=LDF-SQL-TEST\DMSQL;Initial Catalog=DisplayMonkey;Persist Security Info=True;User ID=DisplayMonkey;Password=Cheese232" providerName="System.Data.SqlClient" />
When in reality, it shoudld've looked like this
<add name="DisplayMonkeyDB" connectionString="Data Source=LDF-SQL-TEST\DMSQL;Initial Catalog="DisplayMonkey";Persist Security Info=True;User ID=DisplayMonkey;Password=Cheese232" providerName="System.Data.SqlClient" />
The text editor didn't incorrectly format the string, I did :P
In regards to my recent question about DM_M, I turned off Custom Errors on DM_M IIS so that I could see what is going on. It had originally not liked that I used the same connection string as in DM web.config. Go figure, connection string issue. I replaced DM_M web.config with default web.config. Does DM_M require it's own SQL DB to function just as DM? I had thought DM_M used the same DB but was using an account with elevated functions. Current DisplayMonkey_Management Connection String
<add name="DisplayMonkeyEntities" connectionString="metadata=res://*/Models.DMModel.csdl|res://*/Models.DMModel.ssdl|res://*/Models.DMModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=DisplayMonkey;persist security info=True;user id=ds;password=ds.1234;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
When I try changing the data source to LDF-SQL-TEST\DMSQL and username/password to reflect DM web.config file I receive this...
Looks as though I should talk to myself more often when I have issues. This was resolved as well! Same problem (apparently) the connection string. Inside DM_M web.config I had entered the server, user and password exactly as DM and was having this issue. I checked in IIS under DM_M > ASP.NET > Connection Strings and for DisplayMonkeyEntities I noticed it was showing defaults 'data source=(local)' etc, etc. I corrected them now DM_M is working! Guess I'm not so crazy for talking to myself after all......
Just a friendly reminder to everyone to exercise extreme caution while referring sensitive information, such as passwords, computer names and connection strings. Remember, everything posted on Github is public domain and thus may automatically become available to malevolent parties. Use masking, wildcarding, commentary, or other form of connotation to indicate the intended purpose. Have a great day and enjoy DisplayMonkey!
Well I, of course, modify all possibly volatile information before posting. It is just when it comes to certain lines like the connection string where I had a good feeling formatting was the issue and didn't want to throw anyone off by using "password" instead of just password. But thank you for the reminder, I know it is very easy to share something you may see as harmless when in reality it isn't.
The premise is that it can damage no one but the poster him or her self. So, be sure to protect your own self! ;-)
@rhummel I know this is an old thread, but thanks for posting the detailed instructions. I had a similar experience and it was nice to see I am not alone.
Unfortunately, even after creating the users and logins as you described, I still receive a "Login failed for user 'DisplayMonkey' error on DM_M. I am fairly confident that I have made the correct changes but I cannot seem to straighten this out. Any suggestions?
I am using SQL 2014 on a Windows 10.1903 VM with IIS and ASP.NET 4.8 installed
bomsko, It's been a long time since I had hands-on with this. I do know that a tech at another facility followed the directions and had it running in an hour. Are you saying that you can get to the DM_M web login page, but the creds you're entering don't work? I'd double-check the creds. There is a default and it's not the same as the SQL creds.
@rhummel thanks for replying.
I did check the account names/PWs both for the database and the server. It turned out that in my case, enabling Windows and SQL Authentication within the SQL Manager rather than just Windows by itself was all it took. (It is always the last thing you try.) I agree the install was pretty seamless once you got up to speed on the particulars. I set up two more VMS as demos in the time it took me to set up the first one.
Thanks again for the feedback.
Is there a way to hide / encrypt the username and password in Step 4?
One thing that stumped me for a while: When installing IIS make sure to include
This fixed issues where the /DisplayMonkey side of the webpage had no CSS and attached displays had blank pages. On the /DisplayMonkey_Management side PNG images wouldn't load and the save buttons on forms were invisible.
Hi,
Anyone have a complete installation guide including the asp/sql part? I'm trying to install display monkey, but are a noob, so I get errors everytime I tries..
I have installed a Server 2012 R2 and SQL 2014 standard..