0

使用以下服务方法示例:-

[PrincipalPermission(SecurityAction.Demand, Role="BUILTIN\\Administrator")]
public string GetTest()
{
  try
  {
    return "Hello";
  }
  catch (Exception ex)
  {
    throw ex;
  }
}

当调用者不在正确的角色中时,如何从方法中获取错误。在设计时,错误在方法行(即公共字符串GetTest)上中断并且没有达到捕获。在运行时,它在我的 silverlight 应用程序中报告为未处理的错误(我也有 try.. catch 块)。似乎没有地方可以捕获错误,因为它永远不会进入 try 块!

4

2 回答 2

3

在实际调用方法之前(由 WCF 运行时)检查角色- 而不是在方法内部!

进行此调用时,您需要在调用方处理此异常。

如果您需要检查服务代码中的某些条件,请不要使用属性装饰方法,而是使用代码中的角色提供者来检查给定条件。

于 2011-02-28T16:12:55.437 回答
2

如果您想要 WCF 服务的全局错误处理程序,您可以实现IErrorHandler并将其添加到自定义行为中。操作无法捕获在其 try 块之外抛出的异常。

于 2011-02-28T16:17:25.917 回答