При выполнении IIS 7, Вы могли бы использовать Неудавшийся Запрос, Прослеживающий . Я на самом деле не использовал его для тайм-аутов, я главным образом настроил его для получения просто определенных кодов ошибки HTTP. Но я знаю, что можно заставить его выводить трассировки любого запроса, берущего больше чем X количества времени.
Спасибо за ответ Дэйв. Я' я немного изменил функцию, и это то, что я использую ... если нет больше комментариев;)
public static string TruncateAtWord(this string input, int length)
{
if (input == null || input.Length < length)
return input;
int iNextSpace = input.LastIndexOf(" ", length, StringComparison.Ordinal);
return string.Format("{0}…", input.Substring(0, (iNextSpace > 0) ? iNextSpace : length).Trim());
}
Попробуйте следующее. Это довольно примитивно. Просто находит первый пробел, начиная с нужной длины.
public static string TruncateAtWord(this string value, int length) {
if (value == null || value.Length < length || value.IndexOf(" ", length) == -1)
return value;
return value.Substring(0, value.IndexOf(" ", length));
}
Если вы используете формы Windows, в методе Graphics.DrawString есть параметр в StringFormat, чтобы указать, следует ли обрезать строку, если она не вписывается в указанную область. Это позволит при необходимости добавить многоточие.
http://msdn.microsoft.com/en-us/library/system.drawing.stringtrimming.aspx