Autor Beitrag
GeraldVonRiva
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19
Erhaltene Danke: 2



BeitragVerfasst: Mo 11.07.16 10:38 
Guten Tag,

Ich bin gerade dabei einen Druckdienst, zum erzeugen von Excel-Dateien über C# zu schreiben. Dieser läuft als WCF-Dienst mit einem "webHttp" Binding (also REST) unter dem IIS. Der Anwendungspool des IIS ist für den Dienst so konfiguriert worden das der Pipelinemodus auf "classic" steht und die Identität des Pools auf "LocalSystem". Dies wird für die Erzeugung der Excelsheets so benötigt. Nun ist die weitere Anforderung, aber Daten aus einem Microsoft Analysis Service auszulesen. Dies soll über die AdomdClient umgesetzt werden. Für das auslesen der Daten aus dem Analysis Service muss eine Nutzerauthentifiierung ausgeführt werden. Jedoch wird der im Connectionstring angegebene Nutzer nicht für die Anmeldung genutzt, sonder es wird immer wieder versucht eine Anmeldung mit dem aktuellen Rechnernamen als Nutzer durchzuführen. Liegt das vllt an dem IIS? Leider kenne ich mich mit dem IIS nicht sonderlich gut aus.

Methode zum auslesen der Daten

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
 private DataTable GetDataFromOlapDB(string olap_serv, string olap_db)
        {
            DataTable req_values = new DataTable();

            AnalysisService.AdomdConnection OlapCon = null;
            AnalysisService.AdomdDataAdapter OlapAdap = null;
            try
            {

                string mdx_content = this.ReadTextFromMDX();
                string OlapConnectionString = "Provider=\"MSOLAP.3\";Client Cache Size=25;Data Source=\"testserv\\testserver_1\";Initial Catalog=Test_DB_Ger;";
                
                OlapConnectionString += "User Id=Testdomain\\Testuser;Password=Testpwd";
                OlapCon = new AnalysisService.AdomdConnection(OlapConnectionString);

                OlapCon.Open();


                OlapAdap = new AnalysisService.AdomdDataAdapter(mdx_content, OlapCon);

                OlapAdap.Fill(req_values);

                if (req_values.Rows.Count < 1)
                {
                    Console.WriteLine("Keine Olap Daten");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                OlapAdap.Dispose();

                OlapCon.Close();
            }

            return req_values;

        }


mfg

Gerald