I have a couple of questions. I've gotten Our SSAS Running against SS 2000 where the Server is separate from the Web Server running IIS by installing SSAS on the Web Server and Pointing it to the instance on the Database Server. This works on both mine and my bosses systems and I finally got it working on our internal server (the described situation above, our dev computers have all running on one box).
When I implement this on one of our client configurations that is the same as the first above (DB + SSAS and connected to IIS Server with SSAS as well) I cannot get it to connect and return the data.
The error I get via my Asp.net 2.0 webpage is :
A connection cannot be made. Ensure that the server is running.
I have checked every possible setting between the two sets of servers and I'm about to lose it
Everything seems identical. Do you have any suggestions. I checked the services to see if the SSAS was running on the web server and it is.
Suggestions?
SSAS authenticates using windows authentication. In order to get an ASP.NET application to connect to SSAS, it needs to be running under an account that is in a role in SSAS that has rights to view the cube you want to query.
There are a couple of ways to do this:
For IIS6, you are best to setup an application pool running under a domain account, run your ASP.NET in that application pool and put that domain account in a role in SSAS.
For IIS5 instead of using an application pool you can set the account using the <Identity> tag in the web.config
Note: to SSAS, it will see all requests as coming from a single user so you cannot use role based security with this sort of setup. If you need role based security you would need to maybe look into setting up HTTP authentication.
|||
Ok I'm a bit confused. Sorry.
I've got on Server 1
IIS & Analysis Services
On Server 2
SQL Server 2000 & Analysis Services
As far as I got was installing Analysis Services on the Web Server.
There is an Application Pool that the website is running under but I'm not sure how to setup the Roles for that Pool.
I added user roles under the SSAS on the web server but it's still not working. Sorry for my confusion, I took over this project from another developer and have never worked with this before. Thank you so much for your assistance.
|||So why are there 2 AS servers? and which one has the database you want to connect to?
If you just want your web server to connect to the second server with AS and SQL on it then you don't need AS on the web server, you just need the OLEDB provider for Analysis Services (version 8.0 for AS 2000). The typical problem with web servers is that NTLM credentials will not do 2 hops. What this means is that the client can authenticate to the web server, but the web server cannot pass those credentials along to the second server (for security reasons).
There are actually 2 ways around this you can configure Kerberos authentication (there are a couple of whitepapers from MS on this, they should not be too hard to find). The only other thing you need is to have <Identity Impersonate="True" /> in your web.config.
Using the original method I described, I would actually create a new app pool, just for this application. In the app pool settings I think there is an Identity tab, you would set this to run as a specific domain user. Then on your AS server create a role with the same domain account and give it access to the database/cubes that the web app needs.
|||I tried setting up Application Pool, didn't work. I'm not sure the client wants Kerberos installed on the machine. I have this working on our internal computers (2 workstations) and our development servers. I'm trying to put it on theirs and having difficulty.
I setup Roles on the AS server (I'd rather not use the same one as on the database server) on the IIS Server (running Windows Server 2003). I can connect to the DataMart and see the data. I can get to the page but it wont' connect from IIS to AS it seems.
Using <Identity...> blows it up says it's not recognized (I'm assuming you need IIS 5 or Kerberos for that to work).
I setup every way I could imagine in the App Pool settings. It defaults as Network. I tried that. Then I tried various user configurations.
So the DB server is on SQL 2000, our test was on SQL 2005.
Thanks for your help. Any more ideas?
|||If you want to use the AS on the IIS box, then that makes things a bit easier. You only need Kerberos when IIS and AS are on separate machines.
The <Identity ...> tag is an ASP.NET setting and works for both IIS 5 and 6, but it is case sensitive and needs to be under the right section of the web.config file. But if you are using IIS 6 and don't need role based security then you are better off just using the app pool identity.
If you left the App Pool set to Network, you would need to go into the Role Manager for your database and either create a new role or add the "NETWORK" user to an existing role.
It's a lot simpler if IIS and AS are on the same box, the main "trick" is that it is the app pool account that connects to AS and needs to be in an appropriate role. If they are on the same machine you should not have trouble with firewalls and identities not crossing machine boundaries.