Я вроде решил это, но не так, как хотел. Для справки других я приведу описание того, что я сделал, и ресурсов;
ELMAH: http://code.google.com/p/elmah/
URLRewritingNet: http://www.urlrewriting.net/149/en/home.html
Это была действительно единственная доступная опция для меня: http://csharpin.blogspot.com/2009/03/using-urlrewritingnet-and-elmah.html,, но у меня были неописуемые трудности, чтобы вставить код в мою существующую архитектуру без других негативных последствий. Я попытался добавить правила в ExternalRewrite.config (URL Rewrite), чтобы игнорировать * .axd, но это тоже не сработало. Я получал все виды странного поведения.
Затем я решил использовать мониторинг работоспособности: http://www.4guysfromrolla.com/articles/031407-1.aspx вместо ELMAH. Извините, ELMAH: (
Мониторинг работоспособности был быстрым шагом в настройке, и тогда все, что мне нужно было сделать, это решить неприятную проблему обратной передачи на переписанных URL;
Мониторинг работоспособности web.config;
<!--he-mon-->
<healthMonitoring enabled="true">
<eventMappings>
<clear />
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647" />
</eventMappings>
<providers>
<clear />
<add connectionStringName="healthMonitoringConnectionString" maxEventDetailsLength="1073741823" buffer="false" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" />
<add type="System.Web.Management.SimpleMailWebEventProvider" name="EmailWebEventProvider" from="xxx" to="yyy" bodyHeader="zzz" bodyFooter="000" buffer="false" />
</providers>
<rules>
<clear />
<add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
<add name="All Errors Default Email" eventName="All Errors" provider="EmailWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
</rules>
</healthMonitoring>
<!--he-mon-->
Добавьте строку подключения и к узлу connectionString
.
Чтобы исправить довольно неприятный постбэк переписанных строк URL, я попробовал предложение Скотту; Обработка почтовых пакетов ASP.NET с перезаписью URL: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx,, но я не мог заставить это работать вообще.
Начав по-настоящему сожалеть о том, что начал переписывать URL-адреса, я, наконец, добавил это на одну проблемную страницу, которая у меня была; Me.Form.Action = Me.Request.RawUrl
в пределах Page_Load
и это сработало.
Я знаю, что это не дает прямого ответа на вопрос, но я надеюсь, что это поможет. Я надеюсь, что кто-то найдет мою информацию, по крайней мере, несколько полезной.