Base64字符串太长

时间:2016-01-24 10:47:47

标签: c# asp.net-mvc web-services

我已经使webservice从android应用程序接收base64string和图像名称。但问题是,当我将一个base64string值传递给webservice时,我得到一个错误

</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的长度。任何想法。谢谢

1 个答案:

答案 0 :(得分:1)

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

  

这是一项安全功能。除非,否则请勿更改此功能   变化的范围是完全理解的。您可以配置IIS   服务器拒绝查询字符串大于a的请求   指定值。如果请求的查询字符串大于   配置值,返回此错误。如果允许的长度   查询字符串需要增加,修改   的 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"/>

如以下引用requestFiltering [IIS Settings Schema]Request Filtering httpRuntime Element (ASP.NET Settings Schema)中的requestLimits元素所述。