gpt4 book ai didi

客户端未正确捕获 WCF 自定义故障异常

转载 作者:行者123 更新时间:2023-12-04 20:18:27 24 4
gpt4 key购买 nike

我正在尝试创建一些自定义 FaultException .我做了一个 DataContract类叫 CreateFault .

[DataContract]
public class CreateFault
{
private string report;

public CreateFault(string message)
{
this.report = message;
}

[DataMember]
public string Message
{
get { return this.report; }
set { this.report = value; }
}
}

然后我在服务方法中抛出错误。

IService1.cs
[OperationContract]
[FaultContract(typeof(CreateFault))]
void TestFaultException();

并在 Service1.cs
public void TestFaultException()
{
throw new FaultException<CreateFault>(new CreateFault("CreateFault message"), "Message abt exception");
}

我 catch 了 FaultException在我的客户端。
private void btnTest_Click(object sender, RoutedEventArgs e)
{
try
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
client.TestFaultException();
}
catch (FaultException<CreateFault> ex)
{
MessageBox.Show(ex.Detail.Message, "Success", MessageBoxButton.OK, MessageBoxImage.Error);
}
catch (FaultException ex)
{
MessageBox.Show(ex.Message, "Failure", MessageBoxButton.OK, MessageBoxImage.Error);
}
catch (Exception ex)
{
}
}

现在问题来了。当我在 Visual Studio 2010 中创建 WCF 服务应用程序项目时,它按预期工作。错误被捕获在:
catch (FaultException<CreateFault> ex)

但是当我使用自定义 FaultExceptions 创建 WCF 服务库项目时客户无法识别我的自定义异常。相反,它会捕获以下错误:
catch (FaultException ex)

为什么它不适用于 WCF 服务应用程序项目?

编辑:
这是我在调试期间捕获异常时得到的
catch (FaultException ex)

(在立即窗口中输入 ?ex )

{"消息 abt 异常"}
[System.ServiceModel.FaultException<WpfApplication1.ServiceReference2.CreateFault>]: {"Message abt exception"}
base {System.ServiceModel.CommunicationException}: {"Message abt exception"}
Action: "http://tempuri.org/IService1/TestFaultExceptionCreateFaultFault"
Code: {System.ServiceModel.FaultCode}
Message: "Message abt exception"
Reason: {Message abt exception}

编辑2:

发现问题了。我有两个 Service 引用,它们都有 CreateFault DataContract。当我运行程序时,它使用了错误的程序。

当我改为
catch (FaultException<ServiceReference2.CreateFault> ex) 

有效

最佳答案

发现问题了。我有两个 Service 引用,它们都有 CreateFault DataContract。当我运行程序时,它使用了错误的程序。

当我改为

catch (FaultException<ServiceReference2.CreateFault> ex) 

有效

关于客户端未正确捕获 WCF 自定义故障异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com