当我通过调试按钮在本地运行我的应用程序时,我的文本框更改事件会在文本框中键入内容并从中删除后触发。
但是,如果我部署到 IIS 服务器并测试该站点,则不会触发该事件。
什么可能导致这个问题?
更新*** 很抱歉造成混乱。这与调试和断点无关。这些事件在部署到 IIS 时根本不会触发,但在本地运行时会触发
尝试这个:
将代码部署到 IIS 并在您选择的浏览器中启动网站后,转到Debug
Visual Studio 中的菜单并选择Attach To Process...
. 这将打开一个列出进程的对话框窗口,选中该框Show processes from all users.
,然后w3wp.exe
在列表中找到该进程,现在单击Attach
按钮。加载符号并激活断点需要一点时间(几秒钟,而不是几分钟)。现在,当您生成事件并在服务器端为其处理程序设置断点时,调试器将在断点处停止,就像您在部署到 IIS 之前在 Visual Studio 中按 F5 时一样。
有关更多信息,请阅读使用 Visual Studio 调试器附加到正在运行的进程
在您退出后,事件自动触发并不是真正的标准行为。为此,您必须说文本框应该自动回发。
你应该像这样声明你的 asp:net 文本框:
<asp:TextBox ID="helloWorldTextBox" runat="server" Text="Hello World!" AutoPostBack="True" OnTextChanged="helloWorldTextBox_TextChanged" />
如果我对您的理解正确,您就不会面临无法调试它的问题,但很简单,TextChanged 事件上应该发生的事情并没有做它应该做的事情。
另一件事,如果您正在动态创建文本框(在代码后面),您必须确保 ID 保持不变,否则事件不会触发。这通常在 Page_Init 事件中完成。