【问题标题】:Internet Explorer cannot display the webpageInternet Explorer无法显示该网页
【发布时间】:2011-10-21 17:50:24
【问题描述】:

我不确定这告诉我什么? 我有这个:

<system.web>
    <customErrors mode="Off"/>

当我单击应该上传文件的按钮时。这样做时我收到上面列出的错误。我在我的本地机器上运行。我尝试调试它,但我得到了错误,而不是我的断点。我把“你好”这一行认为它试图在执行断点之前评估“if”语句。仍然失败,不知道为什么。

 protected void btnUpload_Click(object sender, EventArgs e)
 {
     string a = "hello";
     if (FuQuote.HasFile)
     {
         string path = "~/Quotes/" + FuQuote.FileName;
         FuQuote.SaveAs(MapPath(path));
     }
 } 

此问题可能由多种问题引起,包括:

  • Internet 连接已丢失。
  • 网站暂时不可用。
  • 无法访问域名服务器 (DNS)。
  • 域名服务器 (DNS) 没有网站域的列表。
  • 地址中可能有输入错误。
  • 如果这是 HTTPS(安全)地址,请单击工具,单击 Internet 选项,单击 高级,并检查以确保启用 SSL 和 TLS 协议 在安全部分下。

【问题讨论】:

  • 我刚刚发现它与 FileUpload 控件有关。如果我只是单击我发布的代码的按钮而不给它一个文件,我会遇到我的断点。如果我使用控件并选择一个文件,然后按失败的按钮。
  • FuQuote.FileName 的输出是什么?如果我没记错的话,那不是返回文件的完整路径吗?
  • 是的,你是对的,它将完整的路径名放在你看到的文本 bax 中。但它不会进行实际的上传。我在按钮中的代码应该是这样做的。但它似乎无法调用该函数。
  • 我只是确定它与上传控件有关。当我从与第一次打开的目录不同的目录中获取文件时,它会失败。这意味着如果我完全改变目录它会失败。
  • 这听起来不对。你试过我的建议了吗?

标签: asp.net visual-studio-2010 internet-explorer


【解决方案1】:

您在 web.config 中设置的 maxRequestLength 值是多少?您可能选择的文件大于 maxRequestLength 值。

<system.web>
    <httpRuntime maxRequestLength="4096"/>
</system.web>

【讨论】:

  • 修正了属性的名称,我的意思是 maxRequestLength,而不是 httpRequest。 maxRequestLength 默认为 4096kb (4mb)
  • 我目前没有设置。
  • 好吧,我不知道这在任何人的心目中是如何产生的,但它是 maxRequestedLength 我将它加倍并且它起作用了,有点。为什么在您对控件采取任何操作之前,它会在调用函数上传它时给出错误。谢谢大家的帮助
  • 控件应首先查看文件大小,如果文件大小超过设置的请求长度,则会立即导致该错误。请将我的建议标记为答案!
【解决方案2】:

最大请求长度给您带来了麻烦。默认情况下,允许的最大文件上传大小为 4MB。如果您尝试上传更大大小的文件,连接将重置并且不会到达“HasFile”代码。检查您尝试上传的文件的大小并尝试使用较小的文件。您可以通过添加来增加文件大小限制

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="SIZE" />
  </system.web>
</configuration>

标签和默认情况下会在那里。如果它在 web.config 中,请添加该行。 SIZE 应替换为大小限制。

注意:大小以 KB 为单位输入。

此外,在 try-catch 块中编写这样的代码总是更好。发生异常的可能性有 n 种。

protected void btnUpload_Click(object sender, EventArgs e)
 {
     try
     {
         string a = "hello";
         if (FuQuote.HasFile)
         {
             string path = "~/Quotes/" + FuQuote.FileName;
             FuQuote.SaveAs(MapPath(path));
         }
     }catch(Exception ex)
     {
         // Exception handling code goes here.
     }
 } 

【讨论】:

    【解决方案3】:

    上传控件的FileName 属性返回文件的完整路径。您需要将文件名解析为上传逻辑的一部分。我想你也需要使用FuQuote.PostedFile.FileName

    导入System.IO 命名空间并执行以下操作:

    string path = String.Format("~/Quotes/{0}", Path.GetFileName(FuQuote.PostedFile.FileName));
    
    FuQuote.SaveAs(Server.MapPath(path)); 
    

    【讨论】:

    • 这一切都很好,但我不相信我已经达到了这一点。如果我更改上传控件中的目录,那么当我单击按钮时函数调用将失败。所以我从来没有达到能够看到 FuQuote.HasFile = true 的地步
    • 我之前上传过很多文件,但我从来没有遇到过这个问题,所以我很容易认为你的代码有问题,或者你正在上传的客户端文件来自。
    • 都是在同一台机器上VS2010开发的。当我搜索要上传的文件时,它几乎就像迷路了。如果我不搜索它的工作原理。几乎就像它可能会更改整个网页的目录结构并且它会丢失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2012-08-20
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多