构造上IdentityModel.Client.TokenClient未找到

问题描述 投票:1回答:1

我觉得这可能会落入缺失/不正确部署的DLL的水桶,但据我可以在服务器上看到这是它和它相同的版本,在我的本地机器运转的唯一装配。我用IdentityModel 3.7版,具体这个构造,和它建立,甚至在本地运行就好了。我把它部署到我的QA服务器和巴姆缺少方法例外。我甚至它升级到了3.9,只是部署,看看是否会工作,没有任何变化。不幸的是该组件没有一个公钥标记,虽然我找遍了所有驱动器的IdentityModel.dll的另一个版本,并没有发现任何。在GAC没事,重启没有工作,我的想法。

找不到方法: '太虚IdentityModel.Client.TokenClient..ctor(System.String,System.String,System.Net.Http.HttpMessageHandler,IdentityModel.Client.AuthenticationStyle)'

编辑我添加了一些日志代码

    Assembly assem = Assembly.GetAssembly(typeof(TokenClient));
    FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assem.Location);
    string version = fvi.FileVersion;
    _logger.Error(String.Format("{0} : {1}", assem.FullName, version));

他们都打印出来,在我的本地框和破QA环境都相同的版本。

编辑2我添加日志代码记录所有构造函数和方法,并在这两个盒子,他们打印出来的一样。我甚至可以看到我的构造函数注销权缺少方法异常之前。

deployment openid claims-based-identity
1个回答
1
投票

圣牛什么一趟。

因此,这里是什么的问题是,这个问题总成wasnt实际包含抛出缺少方法,但参数而是一个类中的一个。该System.Net.Http组件是我的本地机器和QA之间实际上是不同的。因此,其实这是一个缺少方法,有没有构造函数期待一个不同的版本,HttpMessageHandler类型。通过包括本在web.config事情再次为我工作。害怕的是,它实际上是一个默认的参数,所以你甚至不会注意到有时这个参数

<dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> </dependentAssembly>

© www.soinside.com 2019 - 2024. All rights reserved.