【问题标题】:ASP.NET Uploading file over 300KB~ makes browser lose connectionASP.NET 上传文件超过 300KB~ 导致浏览器失去连接
【发布时间】:2013-02-16 11:11:33
【问题描述】:

我已经运行我的图片上传网站大约一个月了。我最近没有接触过脚本,现在发生的这个问题以前从未发生过,甚至更大的上传。 上传大小超过 300 KB 区域的文件时,您的浏览器会断开连接。任何低于此值的内容都会立即上传,您立即点击上传按钮就会被重定向到图片页面。

网址是http://img.kfirprods.com/Upload.aspx

至于我的 web.config,我尝试了所有这些建议来更改执行时间和 maxRequestLength,但这些建议都没有帮助,无论是适度的大小还是不适度的大小。 requestLength 的默认设置约为 4MB,并且在此之前用户-服务器连接丢失了。这是我的 web.config

    <configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <httpRuntime requestValidationMode="2.0" />
    <customErrors mode="Off"/>
  <machineKey
    validationKey="EEF33150A048D162D22CB36E1CB9956B148C7A4E6999D0F05B53D416D7A16F83823DD626F501DD3549D3E5DCB473634739D0AD9A07F71560946498C943A7586D"
    decryptionKey="0E95F75864047EB6322EA7D5246F2C1175D77A1B016F293C3BAAD000299A3DC8"
    validation="SHA1"
    decryption="AES" />

  </system.web>


</configuration>

还有其他 httpRuntime 设置,但即使是默认设置,也应该可以工作 - 不要。 但是,实际发生的情况是服务器表现得好像它已关闭,但它只会取决于超过上传的小尺寸并在一两分钟后返回的用户。请任何甚至有点专家的人 - 尝试上传一些“重”图片,看看你是否认识到问题。

【问题讨论】:

    标签: asp.net file upload web-config connection


    【解决方案1】:

    将以下内容放入您的 web.config 文件中

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

    默认值为 4096 = 4mb。但是,在共享主机上,个别主机可能会配置不同的值,这会限制您可以上传的文件大小。

    此外,您可以/不能根据您的主机授予的权限修改这些设置。

    【讨论】:

    • 我已经尝试过修改maxRequestLength。主机商不限制上传,甚至同时上传10MB也很顺利。只是最近才发生这种事情。那你的建议没用。但是,我让它保持您建议的方式,因为它对其他人产生影响的可能性很小(img.kfirprods.com/Upload.aspx
    • 您能否提供错误详细信息。我尝试上传图片但不能。但是,这似乎不是 asp.net 错误,而是 iis 的一些问题。如果您转到您的主机帐户的根目录,您将能够看到日志,并且可能会出现错误的详细信息。请仔细阅读它,它应该可以帮助您解决问题。
    • 有人设法上传了一张 514KB 的图片(不确定是谁),但我敢肯定他会在某些时候说它非常慢。我会尝试按照您的建议进行操作,然后返回答案。感谢您的帮助
    • 我也刚刚上传了蓝色花朵的图片。虽然它很大,但我可以上传。上传速度很慢
    • 它是 514 kb,可能是我。
    【解决方案2】:

    请将 Server.ScriptTimeout 设置为更长的值,例如

     Server.ScriptTimeout=36000 
    

    添加

    <httpRuntime maxRequestLength="9999" /> 
    

    在 webconfig 中设置。如果这不起作用,请告诉我

    【讨论】:

    • 没有帮助。我将它保留在代码中,因为它与其他解决方案结合使用的可能性很小
    【解决方案3】:

    ASP.NET FileUploader 的上传限制为 4MB。但是您可以通过在 web.config 中添加以下代码来增加上传文件的长度限制:

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

    添加 executiontimeout

    也是个好主意
    <configuration>
          <system.web>
            <httpRuntime maxRequestLength="4096" executiontimeout="700" />
          </system.web>
    </configuration>
    

    【讨论】:

    • 这与每个人的建议大致相同,正如我提到的,我已经尝试了简单的方法。不仅如此, - 上传被卡住的距离低于默认的 4MB 并且早于应有的速度。这不是办法。
    • 如果您能提供一些错误代码,我们可以在这里解决真正的问题。但是,如果您的问题是当有人上传照片时服务器变慢,那么我们可能还应该考虑另一个区域,例如服务器设置等。
    • 这并不是说它变慢了,它实际上停止了与客户端的连接(通常)。没有错误,但您可以注意到在上传超过 300KB 的图片时浏览器如何停止识别该网站。如果你上传一个 300KB 的文件,它是立即的,但是大约 50 KB 更多,并且出现了问题。自己试试,上传一张“重”图片,然后打开其他页面,你的浏览器会告诉你它无法识别它。不过我要提醒一下,大约两周前不是这样的,你可以在几分钟内上传 10MB,当然不会发生“崩溃”。
    【解决方案4】:

    我会再次询问主机提供商 (HostGator) 是否对此有所了解(第一个客户支持人员似乎完全不了解)。如果不行,我还不如放弃,这不是网络上没有足够的图片上传网站。感谢那些试图提供帮助的人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 2014-09-18
      • 2016-03-27
      • 2014-06-10
      相关资源
      最近更新 更多