Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Troubles with OLAP via msmdpump.dll #919

Closed
gordon-matt opened this issue Jul 27, 2017 · 2 comments
Closed

Troubles with OLAP via msmdpump.dll #919

gordon-matt opened this issue Jul 27, 2017 · 2 comments
Assignees

Comments

@gordon-matt
Copy link

I'm not sure if this is the right place for this question. I originally asked this on StackOverflow, as I thought you guys might be monitoring the "devexpress" and "devextreme" tags, but the question hasn't received many views, so here it is - I hope you can help:

I'm upgrading a project from an older version of DevExpress to the latest version of DevExtreme and having an issue with the pivot grid's OLAP connection. In the old version, we could bind to a connection string as follows:

@Html.DevExpress().PivotGrid(pivotSettings).BindToOLAP("provider=MSOLAP;data source=.;initial catalog=Dashboard AS;cube name=Dashboard Cube").GetHtml()

In the new one, there is no option for a connection string and I am forced to provide a URL for msmdpump.dll.

I followed some of instructions here: Configure HTTP Access to Analysis Services on IIS 8.0

However, that is for IIS and not IIS Express, so I basically just copied the files to /wwwroot/OLAP/ in my new .NET Core application.

My pivot grid has the following definition:

@(Html.DevExtreme().PivotGrid()
	.ID("pivotGrid")
	.Width("100%")
	.AllowSortingBySummary(true)
	.AllowFiltering(true)
	.ShowBorders(true)
	.ShowColumnGrandTotals(true)
	.ShowRowGrandTotals(true)
	.ShowRowTotals(true)
	.ShowColumnTotals(true)
	.FieldChooser(c => c.Enabled(true))
	.DataSource(d => d.RetrieveFields(true)
		.Store(s => s.Xmla()
			.Url("/OLAP/msmdpump.dll")
			.Catalog("Dashboard AS")
			.Cube("Dashboard Cube")
		)
	)
)

and the msmdpump.ini is as follows:

<ConfigurationSettings>
	<ServerName>localhost</ServerName>
	<SessionTimeout>3600</SessionTimeout>
	<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>

The problem is I keep getting a 404 in the browser console even though the URL is correct:
http://localhost:4116/OLAP/msmdpump.dll

I can't find any instructions for getting msmdpump.dll to work with IIS Express.

I'm thinking maybe IIS Express prevents the browser from accessing DLLs directly? I'm not certain... but it did give me a 404 on the .ini file as well when I tested that. If this is the problem, how do I solve it?

Is it possible for you to make this simpler by allowing an alternative to the Url parameter, so that we don't need to use msmdpump.dll? For example:

.Store(s => s.Xmla()
    .FromConnectionString("provider=MSOLAP;data source=.;initial catalog=Dashboard AS;cube name=Dashboard Cube")
)

or even have a Server parameter so you can build a connection string that way:

.Store(s => s.Xmla()
    .Server("localhost")
    .Catalog("Dashboard AS")
    .Cube("Dashboard Cube")
)
@AlekseyMartynov AlekseyMartynov self-assigned this Jul 28, 2017
@AlekseyMartynov
Copy link
Contributor

Hi @gordon-matt

I'm not sure if this is the right place for this question.

As we say in CONTRIBUTING.md, the best place to submit questions is Support Center. The issue is related to DevExtreme ASP.NET Controls but this repo is only for DevExtreme client-side libraries.

I can't find any instructions for getting msmdpump.dll to work with IIS Express

Is it a requirement to have msmdpump hosted in IIS Express? Xmla().Url() accepts any URLs, not only local ones. You can host the OLAP service in the "big" IIS or on another machine.

Is it possible for you to make this simpler by allowing an alternative to the Url parameter, so that we don't need to use msmdpump.dll?

If I understand correctly, the question is whether it's possible to connect via OleDb or ADOMD libraries instead of HTTP. Technically, it should be possible to introduce a helper class, at least for classic ASP.NET, not sure about .NET Core. We don't have this idea on our Backlog yet, I'll discuss it with the team.

/cc @San4es @vconst @roman-simionov

@gordon-matt
Copy link
Author

Good point about hosting the DLL elsewhere. I will go ahead and give that a try. In any case, it's a lot of trouble to set that up, when connecting via ADOMD with a connection string would be much less of a headache for those of us who don't have some requirement to connect via msmdpump. Please do add that option if you can. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants