C# 为什么AspCompat=true会使我的asp web应用程序变慢?

C# 为什么AspCompat=true会使我的asp web应用程序变慢?,c#,asp.net,C#,Asp.net,我正在开发一个asp.net应用程序。 在这一页上,我有一个文本框和一个按钮。 当我点击按钮时,会出现一个弹出窗口,它会要求我将文本框的文本保存在我想要的路径上的文件中 这给了我错误 “在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。请确保主函数上标记了STAThreadAttribute。只有在将调试器附加到进程时才会引发此异常” 为了消除这个错误,我对我的aspx文件进行了更改 中的AspCompat=“true” 我的申请被挂了。 那么我怎样才能解决这个问题呢??

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

这给了我错误 “在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。请确保主函数上标记了STAThreadAttribute。只有在将调试器附加到进程时才会引发此异常”

为了消除这个错误,我对我的aspx文件进行了更改 中的AspCompat=“true”


我的申请被挂了。 那么我怎样才能解决这个问题呢?? 或者是否有其他方法来实现此功能?? 为什么它使我的应用程序非常慢

另一方面,我创建了一个小型asp web应用程序,并做了同样的工作,比如我有一个带有一个文本框和一个按钮的页面,我想将文本框的数据保存到一个文件中。在这个应用程序中,它的工作非常好


从早上开始我就一直在讨论这个问题,我知道这个问题背后会有一些小把戏。

在web环境中不能使用
SaveFileDialog
。这是针对Windows窗体的。混合使用Windows窗体组件和ASP.NET可能会产生不寻常的副作用,而且不会像您所希望的那样工作


这就是为什么我假设您注释掉了对
ShowDialog

的调用,看起来您正在尝试将Windows窗体应用程序直接转换为Web窗体应用程序。如果没有可怕的结果,这是不可能做到的。编程没有“诀窍”。唯一的诀窍就是理解你在做什么。您正试图在网站项目中显示Windows窗体控件(SaveFileDialog)。这将不起作用。另外,这是一个新问题,与此问题无关。是的,在客户端计算上,我对ShowDialog进行了注释,因为这一行给了我错误信息
   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;
        }
    }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ABC.cs" Inherits="XYZ" ValidateRequest = "false" %>