我在asp.net网页表单上遇到了一个奇怪的错误。我有一个具有完整功能的遗留页面。它在页面上有几个数据控件。单击提交按钮后执行所需操作后,Internet Explorer将变为空白。它表示页面无法显示。
我的代码足够老,所以它实际上适用于少数生产网站。但最近我部署在一个新的生产网站上。如果我使用内部URL浏览同一页面并执行相同的操作,它不会显示任何错误消息,一切顺利。
为了给出问题的背景,当我点击提交按钮时,它会在后端调用Web服务并返回Web服务结果。一旦它返回结果,它就会将response.redirect()用于同一页面(通过创建url - Request.Url.AbsolutePath)以及querystring中的一些附加参数。如果我刷新页面,那么它会正确显示相同的页面。
IE中的页面 - 铬页面 -答案 0 :(得分:1)
问题不在代码中,但正如我在生产设置配置中所预期的那样。在生产配置中,像www.test.com这样的公共URL被重定向到www.test.com:7500。因此,当用户请求网站URL时,它被重定向到托管应用程序的7500端口。它工作得很好,在asp.net代码中执行response.redirect。当在ASP.NET中执行response.redirect时,在Request.Url.AbsolutePath服务器中获取URL为www.test.com:7500。所以它试图将其重定向到7500.但是这个重定向是在公共URL处设置的。当它在内部试图做同样的事情时,它无法正常工作。
我采用快速修复方法来解决此问题。我删除了公共URL上的请求重定向,并在端口80上设置了我的站点。这解决了我的问题。
答案 1 :(得分:0)
没有看到代码,它可能是很多东西。
但是作为一种猜测,我认为可能会有一些网址重写,然后当网页发回其自身时,它不会回发到重写页面而是发布到下划线页面。
您可以尝试将表单操作设置为后面代码中的重写页面。
form.action = "myrewrittenurl.com/path";
您也可以尝试将表单操作设置为
<form action='#'
哪些可以与某些重写器一起使用。