Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重定向到经典ASP失败,带“0”;无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部“0”;_C#_Asp.net_Asp Classic - Fatal编程技术网

C# 重定向到经典ASP失败,带“0”;无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部“0”;

C# 重定向到经典ASP失败,带“0”;无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部“0”;,c#,asp.net,asp-classic,C#,Asp.net,Asp Classic,我在下面粘贴了以下代码。出于某种原因,response.redirect似乎失败了,它正在耗尽我服务器上的cpu,什么也不做。net代码可以很好地上载文件,但不会重定向到asp页面进行处理 我知道这绝对是垃圾,为什么你要把.net代码重定向到经典asp,它是一个遗留应用程序。我试着在重定向的末尾加上false或true等,因为我读到其他人对此有意见。真奇怪,它在我的机器上本地运行,但不会在我的服务器上运行。远程调试时,我遇到以下错误: 无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部 更新

我在下面粘贴了以下代码。出于某种原因,response.redirect似乎失败了,它正在耗尽我服务器上的cpu,什么也不做。net代码可以很好地上载文件,但不会重定向到asp页面进行处理

我知道这绝对是垃圾,为什么你要把.net代码重定向到经典asp,它是一个遗留应用程序。我试着在重定向的末尾加上false或true等,因为我读到其他人对此有意见。真奇怪,它在我的机器上本地运行,但不会在我的服务器上运行。远程调试时,我遇到以下错误:

无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部

更新 在远程调试并将重定向从try-catch中取出后,我发现重定向正在尝试到达正确的位置,但在它离开后,重定向似乎丢失了。(几乎就好像它无法离开cobra_导入项目一样)将级别备份到cobra/pages。为什么会这样?这以前是有效的

public void btnUploadTheFile_Click(object Source, EventArgs evArgs) 
    { 
        //need to check that the uploaded file is an xls file.

        string strFileNameOnServer = "PJI3.txt"; 
        string strBaseLocation = ConfigurationSettings.AppSettings["str_file_location"]; 
        if ("" == strFileNameOnServer) 
        {
            txtOutput.InnerHtml = "Error - a file name must be specified."; 
            return; 
        } 
        if (null != uplTheFile.PostedFile) 
        { 
            try 
            { 
                uplTheFile.PostedFile.SaveAs(strBaseLocation+strFileNameOnServer); 
                txtOutput.InnerHtml = "File <b>" + strBaseLocation+strFileNameOnServer+"</b> uploaded successfully"; 

                Response.Redirect ("/COBRA/pages/sap_import_pji3_prc.asp");

            } 
            catch (Exception e) 
            { 
                txtOutput.InnerHtml = "Error saving <b>" + strBaseLocation+strFileNameOnServer+"</b><br>"+ e.ToString(); 
            } 
        } 
    } 
public void btnUploadTheFile\u单击(对象源,事件参数evArgs)
{ 
//需要检查上传的文件是否为xls文件。
字符串strFileNameOnServer=“PJI3.txt”;
string strBaseLocation=ConfigurationSettings.AppSettings[“str_file_location”];
如果(“==strFileNameOnServer)
{
txtOutput.InnerHtml=“错误-必须指定文件名。”;
返回;
} 
if(null!=upltfile.PostedFile)
{ 
尝试
{ 
upltfile.PostedFile.SaveAs(strBaseLocation+strFileNameOnServer);
txtOutput.InnerHtml=“文件”+strBaseLocation+strFileNameOnServer+“上传成功”;
重定向(“/COBRA/pages/sap_import_pji3_prc.asp”);
} 
捕获(例外e)
{ 
txtOutput.InnerHtml=“错误保存”+strBaseLocation+strFileNameOnServer+”
“+e.ToString(); } } }
尝试指定绝对地址:

Response.Redirect("http://example.com/COBRA/pages/sap_import_pji3_prc.asp", false);

响应。重定向在try…catch块中工作不太顺利。请参阅。

您可以尝试以下方法:


重定向(“~/COBRA/pages/sap\u import\u pji3\u prc.asp”)

因为什么错误而崩溃?堆栈溢出(嘿……讽刺) 如果是这种情况,你有无限循环,这可以解释cpu峰值,但这是不可能的

你能分步完成代码吗

当您尝试重定向到不同的地址时,崩溃是否会消失

response redirect只向浏览器发送一个重定向头,浏览器负责请求新地址。我猜是新地址导致了这次事故。这就是为什么将try/catch放在重定向上不起作用,因为失败很可能出现在目标页面上


提供更多碰撞信息,我们无法进一步帮助您

Response.Redirect
写入HTTP响应状态和标头,以指示浏览器下一个请求页面是什么,然后引发特定异常,以便立即结束当前请求并停止处理

响应中捕获异常。重定向将导致预期效果(立即停止当前请求的执行)不会发生


重定向到无效URL将导致浏览器请求无效URL,然后无法继续。HTTP响应
位置中的无效URL:
标头包含缺少方案和主机的URL,因此您需要放入方案(
HTTP
https
)和主机(
my.example.com
)。您可以测试什么是
响应。如果您传入以
~/
开头的内容,重定向将起作用-您可能很幸运,ASP.NET可能足够聪明,可以将其转换为适当的有效URL。

我们发现错误与重定向后运行的页面有关。此问题与当前问题无关,将创建新问题。谢谢大家的帮助。我当前的错误是ASP错误424,它是在以下代码之后创建的:a

它不是外部网站。这是同一申请中的内部转账。同一申请是什么?经典ASP和ASP.NET不能是同一个应用程序。您可能会认为,.NET页面在一个单独的项目中,都在同一个解决方案中。我刚刚尝试将响应。重定向退出尝试,但仍然崩溃。这些页面是如何托管在IIS中的?您必须具有.NET应用程序的虚拟目录。asp页面怎么样?它们存放在哪里?它们在同一个虚拟目录中吗?很有趣。。。当我把它放进去的时候,它现在说找不到页面。这是因为重定向由于某种原因无法找到页面的问题吗?+1用于重定向到其他地址。(看,经典的ASP页面是否在服务器上正常工作?)不确定您的问题是什么,但ASP可以与ASP.net共存于同一服务器上—它们使用不同的DLL。。asp.dll aspnet.dll分别处理请求。他们也在使用不同的配置,我相信你知道。。global.asa vs global.asax因此,重定向到另一个是可以的。。您应该知道会话是分开的。在目标页面中放置一些调试代码,看看会发生什么,以及它是否按预期命中..一个很好的调试工具是Fiddler。它将向您显示重定向期间和之后发生的情况。我将尝试远程调试,以查看是否可以获得错误消息。我已成功设置远程调试,并引发以下异常{无法计算表达式,因为代码已优化或本机框架位于