【问题标题】:Why does an ASCX control throws a 404 error?为什么 ASCX 控件会引发 404 错误?
【发布时间】:2024-04-16 12:35:01
【问题描述】:

我创建了一个简单的用户控件,并将其添加到一个 aspx 页面中。 我已经在页面内注册了如下...

<%@ Register src="faq.ascx" tagname="faq" tagprefix="uc1" %>

问题是在 localhost 上它就像一个魅力,但是当我将它上传到实时环境(IIS 7.5)时,我得到了 404 错误。 web.config 中是否有我遗漏的设置?

【问题讨论】:

    标签: asp.net vb.net user-controls iis-7.5 ascx


    【解决方案1】:

    尝试以这种方式使用 ascx 控件的路径:

    <%@ Register src="~/faq.ascx" tagname="faq" tagprefix="uc1" %>
    

    <%@ Register src="~/some_path/faq.ascx" tagname="faq" tagprefix="uc1" %>
    

    也许你正在使用一些 url 重写模块或类似的东西,它阻止(或重写)你 faq.ascx 文件的路径。

    尝试 Fiddler 应用程序来识别 http 请求。

    【讨论】:

      【解决方案2】:

      在我的情况下,当我忘记上传 ascx 时发生 404。

      【讨论】:

        【解决方案3】:

        如果后面的代码中没有同名的事件也可能会导致这个错误,例如:

        <asp:Button ID="btnCancel" runat="server" Text="Cancel" CausesValidation="false"
                        OnClick="btnCancel1_Click" CssClass="btn-cancel" />
        

        如果后面的代码中不存在btnCancel1_Click,就会报这个错误。

        【讨论】: