在 a 中使用以下 try-catch 语句WCF-Service
Try
'Here some method is being called.
Return myBs.PerformDailyUpdate()
Catch ex As Exception 'Exception is not being caught here
If service IsNot Nothing AndAlso service.HasWarnings Then
TextFileTracer.Write(String.Format("Warning in method: '{0}'.", name))
TextFileTracer.Write(service.GetWarnings)
End If
Try
TextFileTracer.Write("Error in dbmanager: " & service.HasErrors.ToString)
Catch ex2 As Exception
End Try
TextFileTracer.Write(String.Format("Error in method: '{0}'.", name))
TextFileTracer.Write(ex.Message & vbCrLf & ex.StackTrace)
End Try
End Function 'Exception shows here while debugging
在那个方法 ( PerformDailyUpdate
)ASMX-Webservice (.Net 2.0)
中调用了一个。此 Web 服务偶尔会SOAPException
引发从该 Web 服务调用的方法引起的问题。但不知何故,此 SOAPException 不会被上述方法捕获。
我的问题:为什么 SOAPException 没有被捕获?是否有一些特征可以将 SOAP 异常与生成的正常“异常”区分开来(这反过来会导致它未被捕获)?
注意:这里写的代码不是我的。所以请不要评判我
异常消息(第一部分)
System.Web.Services.Protocols.SoapException: Unexpected application error: SqlException.
ADF.ExceptionHandling.GlobalExceptions.UnexpectedException: Unexpected application error: SqlException.
System.Data.SqlClient.SqlException: Incorrect syntax near ')'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
....
谢谢
Scheme (how this clarifies the situation somewhat):
Internal DailyTriggerMechanism -----> WCF - Service -----> ASMX-Webservice ----> DB2/SQL
(Origin code above) (Exception being thrown)
在 WCF 服务内部,接收到的数据正在被处理以填充特定的表。在这种情况下,AMSX-Web 服务可能不会改变。