求教:WebService如何向Web客户端抛出自定义异常
我想通过WebService向客户端抛出异常,下面是我的代码,但是捕获不到,没法Alert对话框出来。
也不知道是不是不可行还是咋的,我对WebService理解也不是很透彻,希望各位帮忙看看。
WebService
public CrmService()
{
// 工厂类模拟的客户端激活模式
try
{
string sChannel = ConfigurationManager.AppSettings["Channel"].ToString() + "RemoteObject";
IRemoteObjectFactory objRemoteFactory = (IRemoteObjectFactory)Activator.GetObject(typeof(IRemoteObjectFactory), sChannel);
objRemote = objRemoteFactory.CreateInstance();
}
catch (Exception ex)
{
throw new CrmException(ex.Message);
}
}
try
{
Service = new CrmService();
}
catch (CrmException ex)
{
this.Alert(ex.Message);//注册脚本,弹出alert
return;
}
[Serializable]
public class CrmException : Exception, ISerializable
{
private string _message;
public override string Message {
get { return _message; }
}
//这个一定要有,在序列化时用到
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("Message", this._message);
base.GetObjectData(info, context);
}
//这个一定要有,在反序列化时用到
public CrmException(SerializationInfo si, StreamingContext context) : base(si, context)
{
this._message = si.GetString("Message");
}
public CrmException(string message)
{
_message = message;
}
}
catch (SoapException ex)
{
if (ex.Message.IndexOf("CrmException ") > -1)
return;
}