-1

我编写了一个基于 WCF REST 的服务,该服务使用 webHttpBinding 并使用 JSON 来发布数据。该服务在我们所有的内部环境中都可以正常工作。但是在我们的一个环境中,它是生产的精确复制品。它不工作。如果我在 Firebug 中检查,我会看到“HTTP Error 401 Unauthorized”,并且在服务器中我会在事件日志中看到以下内容。

System.MethodAccessException

System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous

MethodAccessException: System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(System.Web.HttpApplication, Boolean) at System.ServiceModel.Activation.HttpHandler.ProcessRequest(HttpContext context)

我还没有粘贴整个事件日志。但是,前面是它的关键部分。

我无法弄清楚发生了什么,我们正在使用自定义 httpmodule 进行身份验证。

在这方面需要紧急帮助

提前致谢

4

1 回答 1

0

MSDN中,当您尝试从不允许的地方调用私有/受保护的方法时,会发生 MethodAccessException。这是在反射期间抛出的,这很可能是 WCF 在幕后所做的。

我敢打赌,您的一种服务方法被标记为私有或受保护。

这将在您的本地环境中工作,因为它处于完全信任之下。您的生产环境很可能在 Medium Trust 中运行。(在中等信任下,您不能绕过可访问性修饰符。)

——泰坦

于 2010-12-19T20:01:19.150 回答