为什么 AspCompat = true 使我的 asp Web 应用程序变慢



我正在开发一个 asp.net 应用程序。在一页上,我有一个文本框和一个按钮。当我单击按钮时,应该会出现一个弹出窗口,它会要求我将TextBox的文本保存在我所需路径上的文件中。

它给了我错误"当前线程必须设置为单线程单元 (STA( 模式,然后才能进行 OLE 调用。确保 Main 函数上标记了 STAThreadAttribute。仅当调试器附加到进程时,才会引发此异常">

   protected void ButtonIDSaveAs_Click(object sender, EventArgs e)
    {
        try
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Title = "Save an Image File";
            //saveFileDialog1.ShowDialog();
            if (saveFileDialog1.FileName != "")
            {
                using (StreamWriter sw = new StreamWriter(saveFileDialog1.OpenFile()))
                {
                    sw.Write(TextBoxIDPVMContent.Text);
                    sw.Close();
                }
            }
        }
        catch (Exception ex)
        {
           // ex;
        }
    }

因此,要重新播放此错误,我对我的aspx文件进行了更改AspCompat="true" in

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ABC.cs" Inherits="XYZ" ValidateRequest = "false" %> 

它使我的应用程序挂起。那么我怎样才能摆脱这个问题呢?或者有没有其他方法来实现此功能?为什么它使我的应用程序非常慢?

另一方面,我创建了一个小型asp Web应用程序并做相同的工作,例如我有一个带有一个文本框和一个按钮的页面,我想将文本框的数据保存到文件中。在此应用程序中,它工作得很好。

我从早上开始就被困在这个问题上,我知道这个问题背后会有一些小技巧。

您不能在 Web 环境中使用SaveFileDialog。这是针对Windows窗体的。混合使用 Windows 窗体组件和 ASP.NET 可能会产生不寻常的副作用,并且无法按预期工作。

这就是为什么我假设你注释掉了对ShowDialog的呼吁.

最新更新