Qに失敗:なぜそれがローカルに検証しますが、サーバ
次のコードは、ローカルで非常にうまく動作しますが、私は、サーバーの.theのページにしようとするとハングアップする(と、ログインページにリダイレクト)。
XDocument.Load(targetFileName);
XmlReaderSettings settings = new XmlReaderSettings();
settings.CloseInput = true;
settings.ValidationEventHandler += Handler;
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, System.Web.HttpContext.Current.Server.MapPath("~/importSchema/IntialSchema.xsd"));
settings.ValidationFlags =
XmlSchemaValidationFlags.ReportValidationWarnings |
XmlSchemaValidationFlags.ProcessIdentityConstraints |
XmlSchemaValidationFlags.ProcessInlineSchema |
XmlSchemaValidationFlags.ProcessSchemaLocation;
using (StreamReader str_reader = new StreamReader(targetFileName))
{
using (XmlReader validatingReader = XmlReader.Create(str_reader, settings))
{
try
{
while (validatingReader.Read())
{
}
}
catch (XmlValidationFailedException ex)
{
Common.ErrMappingForInformix.WriteLog(ex.Message);
this.ShowStatus("error","", 1);
validationFailed = true;
}
}
}
if (validationFailed)
{
return;
}
private static void Handler(object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Error || e.Severity == XmlSeverityType.Warning)
{
string message = String.Format("Line: {0}, Position: {1} \"{2}\"",
e.Exception.LineNumber, e.Exception.LinePosition, e.Exception.Message);
throw new XmlValidationFailedException(message, e.Exception);
}
}
[Serializable()]
public class XmlValidationFailedException : System.Exception
{
public XmlValidationFailedException() : base() { }
public XmlValidationFailedException(string message) : base(message) { }
public XmlValidationFailedException(string message, Exception innerException) : base(message, innerException) { }
protected XmlValidationFailedException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) { }
}
私は.ITがローカルに大丈夫動作しますが、私は、長い時間を待って、サーバー上では、ログインにリダイレクト何が起こるかを確認するために、無効なxml
ファイルを試してみてくださいpage.i IIS
とエラーフォルダのイベントビューアを確認してください。何も見つかりません。
SSCCE(http://homepage1.nifty.com/algafield/sscce.html)を提供した場合、手助けするほうがずっと簡単です –