我想知道如何在@media only screen and (max-width: 767px)
{
.firstCol
{
padding-right: 0;
}
.secondCol
{
list-style-type: none;
margin: auto;
padding-left: 0;
}
}
已完成的事件方法中捕获异常并将其显示给WCF's
中的用户。
我调用从数据库中提取记录的MessageBox
方法。我想捕获此处发生的任何异常,并将其发送到GetProductTypeAsync();
事件,它应向用户显示service_GetProductTypeCompleted
。
Exception Message
以下是public List<ProductType> GetProductType()
{
List<ProductType> productType = new List<ProductType>();
try
{
using (SqlConnection con = new SqlConnection(_connectionString))
{
SqlCommand cmd = new SqlCommand("usp_Get_ProductType", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
ProductType pType = new ProductType(Convert.ToInt32(reader["pkProductTypeID"]), reader["Name"].ToString());
productType.Add(pType);
}
}
}
}
catch(Exception ex)
{
//Catch Exception and send to the service_GetProductTypeCompleted Event Method
}
return productType;
}
事件
service_GetProductTypeCompleted
答案 0 :(得分:1)
当您从服务发送exception
时,客户端会收到一般错误消息:
由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为),以便将异常信息发送回客户端,或者根据Microsoft .NET Framework SDK文档打开跟踪,检查服务器跟踪日志。“
如果要在客户端捕获特定异常,则应从服务中抛出所谓的FaultException
。这些是 Soap Faults ,可以被任何消费者识别。请注意,您的服务的消费者并不总是.NET使用者,因此无法识别抛出CLR异常。这就是您需要throw
Soap exception
的原因。
E.g。这就是你如何抓住并抛出Fault Exception
catch (FaultException<AnyTypeThatCanBeSerialized> ex)
{
throw;
}
有关wcf Faults
答案 1 :(得分:0)
FaultException不会流向Silverlight。您需要从服务层返回类似于以下内容的类:
public class ServiceReturnInformation<T>
{
public T DataContext { get; set; }
private IList<string> _warnings;
public IList<string> Warnings
{
get { return _warnings ?? (_warnings = new List<string>()); }
set { _warnings = value; }
}
private IList<string> _errors;
public IList<string> Errors
{
get { return _errors ?? (_errors = new List<string>()); }
set { _errors = value; }
}
}
如果发生异常,您的服务需要捕获异常并设置错误/警告属性。
var result = new ServiceReturnInformation<Employee>();
try
{
// Do something
result.DataContext = GetEmployee();
}
catch (Exception ex)
{
result.DataContext = null;
result.Errors.Add(ex.Message);
}
return result;