我已将ASP.NET Web窗体应用程序部署到IIS7 Web服务器。只要 Web.config 的编译部分中的设置为debug=true
,它就可以正常工作。一旦我将其更改为debug=false
,我理解的是当应用程序处于活动状态时我应该做的事情,页面无法正确呈现。
具体来说,具有与ModalPopupExtender相关联的Panel的页面加载了Panel中显示的控件。这不是显示Panel不应该显示的,而是面板内部的控件呈现为好像它们不在Panel内部,导致控件在页面中随机分散。
一旦我再次设置debug=true
,问题就会消失。
编辑:进一步玩了之后,我发现即使在 web.config 中设置了debug=true
,如果我设置了ScriptMode属性>我的页面上的ToolkitScriptManager 到Release
,这也会导致我的ModalPopupExtender启用Panel的行为不正确。因此,为了使事情正常工作,我必须在页面的 ToolkitScriptManager 中的 web.config 和debug=true
中使用ScriptMode=Debug
。这是怎么回事?微软是否要我发布我的申请?
其他信息: 我的Web.config文件显示我的目标是.NET Framework 4.5版,虽然查看IIS中的应用程序池似乎表明我在Web服务器上的应用程序都使用的是版本4,但我并不是特别熟练使用IIS,所以我在下面发布了一个截图。这会导致我遇到的问题吗?
答案 0 :(得分:1)
应用程序池版本与配置文件之间应该存在冲突。也许你正在使用v4.0 App Pool,你的web.config配置为v2.0,反之亦然。
请检查您的版本,并在此回答中发表评论并进行检查。 :)
<强> - 编辑 - 强>
您可以有3个选项:
将面板的样式显示设置为无:
&LT; asp:Panel ID =&#34; panel1&#34; RUNAT =&#34;服务器&#34; style =&#34; display:none;&#34;&gt;
答案 1 :(得分:1)
虽然这不是您要问的问题的直接解决方案,但您可以在页面加载(不回发)中隐藏任何有此问题的页面。我已经看到这在过去用作ModalPopupExtender的解决方法,在不同的场景中显示页面加载的控件。这样可以防止控件在页面上呈现不当,但仍然适用于需要弹出的时候。
protected void Page_Load(object sender, EventArgs e) {
if(!Page.IsPostBack)
pnl.Visible = false;
}
我还发现在托管网站的计算机上获取最新版本的.NET框架可以解决很多这样的问题。