The only thing I can think of is try opening stuff up,
i.e
public static bool TestDb(string path)
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
Database db = new Database();
bool returnFlag = false;
try
{
db.ReadDwgFile(path, FileShare.ReadWrite, false, string.Empty);
AcDb.TransactionManager Tm = db.TransactionManager;
using (Transaction tr = Tm.StartTransaction())
{
BlockTable tb = (BlockTable)tr.GetObject
(db.BlockTableId, OpenMode.ForRead, false);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject
(tb[BlockTableRecord.ModelSpace], OpenMode.ForRead, false);
BlockTableRecord btrp = (BlockTableRecord)tr.GetObject
(tb[BlockTableRecord.PaperSpace], OpenMode.ForRead, false);
tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead, false);
tr.GetObject(db.LayerTableId, OpenMode.ForRead, false);
tr.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead, false);
tr.GetObject(db.ViewportTableId, OpenMode.ForRead, false);
tr.GetObject(db.ViewTableId, OpenMode.ForRead, false);
}
returnFlag = true;
}
catch(SystemException ex)
{
ed.WriteMessage(ex.Message);
returnFlag = false;
}
finally
{
db.CloseInput(true);
db.Dispose();
}
return returnFlag;
}