代码之家  ›  专栏  ›  技术社区  ›  dooburt

一起使用ELMAH和URLRewritingNet

  •  2
  • dooburt  · 技术社区  · 14 年前

    我决定引入URl重写,并选择了 http://www.urlrewriting.net/

    问题是埃尔玛。因为我在配置中设置了URLRewitingNet节点,如下所示:

    <urlrewritingnet
      rewriteOnlyVirtualUrls="true"
      contextItemsPrefix="QueryString"
      defaultPage = "default.aspx"
      defaultProvider="RegEx"
      xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
    

    http://www.mydomain.com/elmah.axd/stylesheet/default.aspx
    

    有人知道怎么做吗 a) 停止.axd之后的重写器;或

    有什么想法吗?我很高兴和你一起闲逛 httpHandlers ...

    3 回复  |  直到 14 年前
        1
  •  4
  •   ajwaka    13 年前

    我也有同样的问题——urlrewritingnet搞乱了我的elmah——但在这里找到了答案: http://markmail.org/message/ctbh6ozzqpe4qn6j#query:+page:1+mid:ctbh6ozzqpe4qn6j+state:results

    基本上将defaultPage设置为空,如下所示:

    <urlrewritingnet defaultPage="default.aspx" ... >
    

    之后(缩短):

    <urlrewritingnet defaultPage="" ... >
    

    现在所有css样式都适用于Elmah。

        2
  •  3
  •   kamranicus    14 年前

    came up with a simpler solution 如果其他人感兴趣。

    我只是直接修改源代码并添加一些基本逻辑来忽略特定的重写规则。

        3
  •  0
  •   dooburt    14 年前

    我解决了这个问题,但不是以我想要的方式。我将提供我所做的工作和资源的细目,供其他人参考;

    http://code.google.com/p/elmah/ URLRewitingNet: http://www.urlrewriting.net/149/en/home.html

    这是我唯一的选择: http://csharpin.blogspot.com/2009/03/using-urlrewritingnet-and-elmah.html

    然后我决定使用健康监测: http://www.4guysfromrolla.com/articles/031407-1.aspx

    健康监控是设置的一个小插曲,然后我所要做的就是解决重写URL上令人讨厌的回发问题;

    <!--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重写字符串上相当糟糕的回发,我尝试了ScottGu的建议;使用URL重写处理ASP.NET回发: 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

    我知道这并不能直接回答这个问题,但我希望它能有所帮助。我希望有人发现我的信息至少有些有用。