Tag: ssas

如何使用C#测试SSAS中与数据源的连接

我在远程服务器上的Analysis Services中有一个数据库。 它包含位于另一个远程服务器上的另一个数据库的数据源。 我正在尝试使用C#编写连接测试,它将检查两个数据库之间的数据库连接。 我无法使用ADOMD.NET执行此操作。 我目前正在考虑使用SMO来做到这一点,但到目前为止我还没有运气。 我非常感谢任何建议或意见。 更新: 经过进一步研究,我提出了以下测试(请注意,我打算稍后添加更多try..catch块和断言)。 此外,它使用C:\ Program Files \ Microsoft SQL Server \ 100 \ SDK \ Assemblies \ Microsoft.AnalysisServices.DLL来访问Server,Database和DataSource类。 class ConnectivityTests { // Variables String serverName = “”; String databaseName = “”; String dataSourceName = “”; [Test] public void TestDataSourceConnection() { // Creates an instance of the Server Server server […]

AMO OLAP QueryBinding

有时我需要在Cube中更改Customer维度的源表,具体取决于业务逻辑。 以前我使用以下代码更改了多维数据集的结构: MyServerDataSourceView.Schema.Tables[“DimCustomers”].ExtendedProperties[“QueryDefinition”] = “new query”; MyServerDataSourceView.Update(); // update to new definition DimCustomer.Process(ProcessType.ProcessAdd, EF); MyServerDataSourceView.Schema.Tables[“DimCustomers”].ExtendedProperties[“QueryDefinition”] = “old regularquery”; MyServerDataSourceView.Update(); // revert back to old definition 但它并不值得信任。 有时它不会恢复查询定义。 Visual Studio显示可以使用queryBinding 。 我正在尝试这样的代码: string queryAdd = “SELECT [a],[b],[c] FROM ase.newtable”; QueryBinding queryBinding = new QueryBinding(); queryBinding.QueryDefinition = queryAdd; DimCustomer.Process(ProcessType.ProcessAdd, queryBinding); 并得到以下错误,并没有多说: 警告:ProcessAdd客户维度的0x80019002 – 序列容器:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。 执行方法成功,但引发的错误数(1)达到允许的最大值(1); 导致失败。 当错误数达到MaximumErrorCount中指定的数量时,会发生这种情况。 […]

是否可以在IIS HttpModule中修改HttpRequest POST的内容?

我需要在IIS中修改某些HttpRequests(SSAS连接字符串)的内容。 基本上,我需要向请求中包含的SOAP添加一个元素。 到目前为止,我的方法是向HttpRequest添加一个Filter,并在filter的Read方法中执行更改。 据我所知,Read永远不会被执行。 我对Request.Filter的理解是它从IIS处理请求时读取,因此IIS应该看到我修改过的Request。 我正在尝试使用HttpModule实际可行,并且我的Filter方法是否正确? 如果是这样,什么会导致Read不被击中? 这是我的代码的简化版本: public class CustomHttpModule : IHttpModule { private HttpApplication app; public string ModuleName { get { return “CustomHttpModule”; } } public void Init(HttpApplication context) { app = context; context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute); } void context_PreRequestHandlerExecute(object sender, EventArgs e) { var request = app.Context.Request; request.Filter = new CustomHttpFilter(request.Filter); } […]