• IIS 7.0 上 SQL Server Analysis Services 的 HTTP 访问


    引言

         今天碰到这样一个需求:Analysis Services 与IIS不在同一台机器上,但是在同一个局域网内。

    问题引出

      我像以往远程访问数据库那样,打开了Sqlserver的远程服务...... 结果访问失败,老是报错:

    Microsoft.AnalysisServices.AdomdClient.AdomdConnectionException: The connection either timed out or was lost. ---> System.IO.IOException: Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。. ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。

    ......

    解决方案     
       参考了一下
    http://technet.microsoft.com/zh-cn/library/gg492140.aspx#bkmk_copy,找出了一个解决方案。

       下面只讲解决方案步骤,理论请参考http://technet.microsoft.com/zh-cn/library/gg492140.aspx#bkmk_copy

          1、拓扑图(客户端、WebService、Analysis Services都分布在不同机器上)

       客户端通过Webservice访问数据库获取数据。客户端在机器一上,Webservice部署在机器二上,AnalysisServices在机器三上。

           机器二中的IIS用来部署Webservice,机器三中IIS用来部署虚拟目录,该虚拟目录指向MSMDPUMP.dll(这是一种在 Internet Information Services (IIS) 下运行的 ISAPI 扩展插件,它可以在客户端应用程序和 Analysis Services 服务器之间抽送数据).

          

    2、将MSMDPUMP.dll复制到Web服务器上的某个文件夹(机器三中操作)

        在 IIS服务器上,创建以下文件夹:<驱动器>:\inetpub\wwwroot\olap

    1. 将 Analysis Services 计算机上 ISAPI 文件夹的内容复制到您刚创建的 \inetpub\wwwroot\olap 文件夹中。

      该 ISAPI 文件夹位于 <驱动器>:\Program Files\Microsoft SQL Server\<instance>\OLAP\bin\isapi。它包含以下文件和文件夹:MSMDPUMP.DLL、MSMDPUMP.INI 以及包含语言资源文件的 Resources 文件夹。

    2. 确认您的 Web 服务器上的 \inetpub\wwwroot\olap\isapi 文件夹包含以下内容:MSMDPUMP.DLL、MSMDPUMP.INI 和 Resources 文件夹。

         

    3、在IIS中创建应用程序池和建立虚拟目录,和添加扩展插件(机器三中操作)

        参见上面所提的网址,将身份验证设成“匿名身份验证”

    4、编辑MSMDPUMP.INI文件以便设置目标服务器(机器三中操作)

       参见上面所提的网址,SeverName设置成localhost即可,因为上面的拓扑图将虚拟目录与Analysis Services服务器部署在同一台机器上。

    5、配置AnalysisService(机器三中操作)

       为数据库添加角色Role:数据库权限设置为完全控制,成员身份中为角色指定用户和组:Iuser.

    通过以上步骤,即可通过IIS访问远程的Analysis Services.

    6、在IIS上部署WebService(机器二中操作)

        参见上面所提的网址,将身份验证设成“匿名身份验证”

    7、如何访问

         1、如果使用Microsoft Sql  Sever ManageMent,那么服务器名称为http://机器三名或IP/olap/msmdpump.dll

         2、如果在Webservice中连接,ConnectString="Data Source=http://机器三名或IP/olap/msmdpump.dll;Catalog=数据库名;";

     以上不足之处还请提出。谢谢!

  • 相关阅读:
    Trades FZU
    H
    Coconuts HDU
    初始化Linux数据盘、磁盘分区、挂载磁盘(fdisk)
    虚拟机硬盘vmdk压缩瘦身并挂载到VirtualBox
    docker创建tomcat容器无法正常访问
    centos7一步一步搭建docker tomcat 及重点讲解
    docker配置国内阿里云镜像源
    代理模式(2):动态代理
    代理模式(1):静态代理
  • 原文地址:https://www.cnblogs.com/smallstone/p/2212336.html
Copyright © 2020-2023  润新知