4

我将我的 dll 托管在 IIS 上wsHttpBinding。我有这个奇怪的错误发生在中间。

好吧,当我重置 IIS (iisreset) 时,一切都会恢复正常。

我也读了这个http://msdn.microsoft.com/en-us/library/ee517280.aspx。但我不确定这与此有关。如果您对此有更多信息,请指导我。谢谢。

“/MSBuildCompilation”应用程序中的服务器错误。

未提供所需的模拟级别,或者提供的模拟级别无效。(来自 HRESULT 的异常:0x80070542) 说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Runtime.InteropServices.COMException:未提供所需的模拟级别,或者提供的模拟级别无效。(来自 HRESULT 的异常:0x80070542)

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[COMException (0x80070542):未提供所需的模拟级别,或者提供的模拟级别无效。(来自 HRESULT 的异常:0x80070542)]

[FileLoadException:无法加载文件或程序集'System.ServiceModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'或其依赖项之一。未提供所需的模拟级别,或者提供的模拟级别无效。(HRESULT 异常:0x80070542)] System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +0
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication .ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

4

2 回答 2

1

(由原发帖人回答,但发错地方,被我感动了。)

大家好,我终于通过在我的客户端应用程序代码中添加以下两行来解决我自己的问题:

    WindowsClientCredential wsCred = wsFactory.Credentials.Windows;
    wsCred.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;

这 2 行强制客户端在每次连接时模拟。

于 2013-01-14T13:24:25.923 回答
1

看起来您正在尝试在 IIS6 中运行 .NET 4.0 框架,根据这篇文章这很棘手。自己没试过。您遇到的异常实际上正在发生,因为您的进程尝试加载 System.ServiceModel 4.0 版 DLL 失败。虽然那篇文章是针对 ASP.NET 的,但它也适用于 WCF,因为 ASP.NET 是 IIS6 中的服务宿主进程。这是另一个类似的问题,有一些很好的答案。

于 2011-08-03T16:03:35.617 回答