我有一个执行操作的wcf服务。在此操作中,可能存在故障。我已经说过,我的服务合同中可能存在错误。
下面是代码;
public void Foo()
{
try
{
DoSomething(); // throws FaultException<FooFault>
}
catch (FaultException)
{
throw;
}
catch (Exception ex)
{
myProject.Exception.Throw<FooFault>(ex);
}
}在服务合同中;
[FaultException(typeof(FooFault))]
void Foo();当我运行应用程序时,DoSomething()方法抛出了一个异常,首先在“FaultException ( exception ex)”行捕获了异常,并在那里中断。然后,当我再次按下f5时,它会执行通常必须执行的操作。我想知道为什么会有这样的中断?如果不是,在发布时会有问题吗?
发布于 2009-12-09 17:02:06
您是否正在使用Silverlight的WCF服务?如果是,则需要进行特殊配置,使服务在出现错误时返回HTTP 200代码,而不是500。详细信息在这里:http://msdn.microsoft.com/en-us/library/dd470096%28VS.96%29.aspx
发布于 2008-11-12 15:03:11
实际上,您的异常被捕获,但您没有注意到它,因为visual studio突出显示下一行,而不是抛出异常的行。替换
throw;使用其他一些行,并查看它们的实际效果。
发布于 2008-09-07 11:45:20
仔细看看捕获的异常。是FaultException< FooFault>还是FaultException?FaultException类有两个版本:generic和non-generic
https://stackoverflow.com/questions/48340
复制相似问题