Base64 字符串太长

本文关键字:字符串 Base64 | 更新日期: 2023-09-27 18:31:41

我已经制作了网络服务来接收 base64string 和图像名称从安卓应用程序。 但问题是当我将 base64string 的值传递到 Web 服务时,出现错误

</style> 
</head> 
<body> 
<div id="content"> 
<div class="content-container"> 
  <h3>HTTP Error 404.15 - Not Found</h3> 
  <h4>The request filtering module is configured to deny a request where the query string is too long.</h4> 
</div> 
<div class="content-container"> 
 <fieldset><h4>Most likely causes:</h4> 
  <ul>  <li>Request filtering is configured on the Web server to deny the request because the query string is too long.</li> </ul> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><h4>Things you can try:</h4> 
  <ul>  <li>Verify the configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting in the applicationhost.config or web.config file.</li> </ul> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><h4>Detailed Error Information:</h4> 
  <div id="details-left"> 
   <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;RequestFilteringModule</td></tr> 
    <tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;BeginRequest</td></tr> 
    <tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;ExtensionlessUrlHandler-Integrated-4.0</td></tr> 
    <tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x00000000</td></tr> 
   </table> 
  </div> 
  <div id="details-right"> 
   <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;http://localhost:36690/api/Data/GetImage?base64String=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</td></tr> 
    <tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;E:'WebService'WebService'api'Data'GetImage</td></tr> 
    <tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
    <tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
    <tr class="alt"><th>Request Tracing Directory</th><td>&nbsp;&nbsp;&nbsp;C:'Users'abdelrahman.Mohamed'Documents'IISExpress'TraceLogFiles'WEBSERVICE</td></tr> 
   </table> 
   <div class="clear"></div> 
  </div> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><h4>More Information:</h4> 
  This is a security feature. Do not change this feature unless the scope of the change is fully understood. You can configure the IIS server to reject requests whose query string is greater than a specified value. If the request's query string is greater than the configured value, this error is returned. If the allowed length of the query string needs to be increased, modify the configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting. 
  <p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=404,15,0x00000000,10240">View more information &raquo;</a></p> 
 </fieldset> 
</div> 
</div> 
</body> 
</html> 

这是我的网络服务:

[HttpPost]
        [ActionName("GetImage")]
        public string GetImage(string base64String, string imgName)
        {
            try
            {
            byte[] imageBytes = Convert.FromBase64String(base64String);
                MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);

                ms.Write(imageBytes, 0, imageBytes.Length);
                System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
                File.WriteAllBytes(Path.Combine
                (@"F:'FileManager'"
                , imgName
                )
              , imageBytes
              );
                return "Success";
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

我不知道我是否需要在我的 web.config 中做一些事情或最小化 base64string 的长度。任何想法.谢谢

Base64 字符串太长

是的,您需要在 web.config 中进行更改。当您查看提供的错误时,它说

这是一项安全功能。不要更改此功能,除非 完全了解更改的范围。您可以配置 IIS 服务器拒绝查询字符串大于 指定的值。如果请求的查询字符串大于 配置值,则返回此错误。如果允许的长度 查询字符串需要增加,修改 configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 设置。

将以下内容添加到您的 web.config

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768"/>
    </requestFiltering>
  </security>
</system.webServer>

<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>

如以下参考中所述 requestLimits Element for requestFiltering [IIS 设置架构]、请求筛选和 httpRuntime 元素(ASP.NET 设置架构)。