3

我已经在我们的开发服务器上安装了 MDS,我可以浏览(并执行各种功能,例如添加用户或创建、添加实体)。但是我无法进入“资源管理器”。在这里,我得到两个 Silverlight 错误。
[HttpWebRequest_WebException_RemoteServer]
参数:未找到
调试资源字符串不可用
等....

服务器是 Win 2008 R2 标准
IIS 是 6.1 (Build 7601 SP1)
我们正在运行 SQL Server 2012
客户端正在运行 SL5 并且 SL5 SDK
IIS 设置为运行 SSL 和 Win Auth(根据跟踪日志,这是工作,它得到了校长)。其他一切都被禁用
IIS 可以连接到数据库(通过管理部分中的数据库管理器)
这发生在所有主要浏览器(IE、chrome、FF)上。

我已经打开了 MDS 的跟踪日志(设置为详细)并且我没有看到任何错误/警告
我也运行了 SQL 分析器并且没有看到任何让我相信并且错误发生在 sql 端的东西。事件查看器中也没有与 MDS/Silverlight 相关的任何内容。我不确定是否/如何远程调试到 MDS 网站(它是预安装和预编译的)

来自 web.config 的几个片段

<bindings>
  <wsHttpBinding>
    <binding name="mdsWsHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
      <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
      <!--Non-SSL implementations.-->
      <security mode="Transport">
        <message clientCredentialType="UserName" />
        <transport clientCredentialType="Windows">
            <extendedProtectionPolicy policyEnforcement="WhenSupported" />
        </transport>
      </security>
    </binding>
  </wsHttpBinding>
  <basicHttpBinding>
    <binding name="mdsBasicHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
      <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
      <!-- Non-SSL implementations.-->
      <security mode="TransportCredentialOnly">
        <message clientCredentialType="UserName" />
        <transport clientCredentialType="Windows">
            <extendedProtectionPolicy policyEnforcement="WhenSupported" />
        </transport>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

.. <snip> ...
<system.diagnostics>
<sources>
  <!-- Adjust the switch value to control the types of messages that should be logged. 
       Use the a switchValue of Verbose to generate a full log. Please be aware that 
       the trace file can get quite large very quickly -->
  <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">
    <listeners>
                <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\Program Files\Microsoft SQL Server\110\Master Data Services\WebApplication\trace.log" traceOutputOptions="DateTime" />
        <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}" /> 
        <remove name="Default" /> 

    </listeners>
  </source>
</sources>
<trace autoflush="true" />

如果有人认为跟踪日志会有所帮助(或其他任何东西),我可以将它们发布(但它们很大)。

我的问题是:我怎样才能调试,或者以某种方式获得更好的错误消息,为我指明正确的方向?

编辑:添加我在跟踪日志中发现:
MDS错误:0:服务启动成功,程序集版本:11.0.0.0,文件版本:11.0.3000.0((SQL11_PCU_Main).121019-1325)DateTime=2013-01-07T15 :09:14.1660484Z
MDS错误:0:ApiContractVersion:5102 DateTime = 2013-01-07T15:09:14.2753968Z

编辑2:
我已经能够挖掘出另一个错误(在许多配置更改之后)。
在 Microsoft.MasterDataServices.Core.BusinessLogic.Member.GetEntityMembers(EntityMembers 成员,RequestContext 上下文,OperationResult 结果)SQL 错误调试信息:编号:229,消息:对象“MemberGetCriteria”,数据库“MDS”的执行权限被拒绝,架构'mdm'。,服务器:SERVERNAME,Proc:,行:0

:由于某种原因,“MemberGetCriteria”有一些权限错误。

4

1 回答 1

0

关于在 IIS 中运行应用程序池的服务帐户的权限的两件事:

1) 根据 IIS 要求,它必须具有“批量登录”权限,才能运行应用程序池;

2) 如果您在 MDS 网站上需要客户端证书,则 MDS 未设置为使用从 IIS Web 应用程序到 MDS\Service\service.svc\bhh 调用的证书,因此您需要将客户端证书设为可选该服务被调用。

web.config:我看到您设置尝试为两个 WCF 端点设置“传输”/HTTPS 安全性,但留下标签而不是标签。您必须确保您没有混合和匹配 SSL 和非 SSL 部分,并且您只注释掉了 Windows / NTLM(或 Kerberos,如果在后端设置)安全模式部分,并取消注释“SSL 实现”部分。

于 2017-08-09T19:24:31.343 回答