私は銀河クライアントコードで一度も捕まえようとしている例外をスローするWCFサービスを持っています。私はデバッグ目的で宣言されていない障害を使用していますが、これは私のサービスメソッドです:silverlightクライアントはfaultexceptionを理解しません
private void MyServiceCallback(MyWCFServiceMethodCompletedEventArgs e)
{
if (e.Error == null)
{
//proceed normally
}
else if (e.Error is FaultException)
{
FaultException<ExceptionDetail> fault = e.Error as FaultException<ExceptionDetail>;
MessageBox.Show(fault.Detail.Message);
MessageBox.Show(fault.Reason.ToString());
}
}
:
[OperationContract]
public ServiceResponse MyWCFServiceMethod()
{
ServiceResponse resp = new ServiceResponse();
//code for setting resp...
//purposely throw error here.
throw new FaultException(new FaultReason(new FaultReasonText("My fault Reason!")),new FaultCode("my fault code here"));
return resp;
}
今私のSilverlightのクライアントビューモデルでは、サービスのコールバックメソッドでは、私はこのようにそれを処理しようとします私はまだSystem.Net.WebException得るこの行else if (e.Error is FaultException)
で
{リモートサーバーがエラー返さ:NOTFOUNDを}
これらは設定項目
012でありますこれは、このサービスは同じシルバーソリューション内の別のプロジェクトであるサービスクラス宣言
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MySilverlightWCFService
{
....
です。 なぜ私のSilverlightクライアントは私が投げているフォルト例外を得ることができませんか?お時間を
おかげで...
Silverlightはサービスエラー処理を考慮して設計されていますか? :O – user20358
ステータスコードを500からSilverlightが読み取れるものに変更する必要があるようです。サービス側でも同様です。それで私がコントロールできないサービスがあれば?私はそれが不自然な回避策だと思う。私は何かを逃したかどうかを見るためにこれをもう一度読むつもり! – user20358
私は、宣言されていないフォルトを処理するための記事で言及されていることを正確に行っています。それでも同じエラーが発生します: 'System.Net.WebException'。 – user20358