1. 程式人生 > >.asmx支持post請求或者get請求調用(WebService "因 URL 意外地以 結束,請求格式無法識別" 的解決方法)

.asmx支持post請求或者get請求調用(WebService "因 URL 意外地以 結束,請求格式無法識別" 的解決方法)

處的 ron pro style handler lin -s silver 沒有

使用Post調用以asmx形式提供的webservice時,在本機調試沒有調用問題。一旦部署至服務器後會提示如下信息:

<html>
    <head>
        <title>因 URL 意外地以“/GetCertByToken”結束,請求格式無法識別。</title>
        <meta name="viewport" content="width=device-width" />
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
         @media screen and (max-width: 639px) {
          pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
         }
         @media screen and (max-width: 479px) {
          pre { width: 280px; }
         }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>“/”應用程序中的服務器錯誤。<hr width=100% size=1 color=silver></H1>

            <h2> <i>因 URL 意外地以“/GetCertByToken”結束,請求格式無法識別。</i> </h2></span>

            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

            <b> 說明: </b>執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。

            <br><br>

            <b> 異常詳細信息: </b>System.InvalidOperationException: 因 URL 意外地以“/GetCertByToken”結束,請求格式無法識別。<br><br>

            <b>源錯誤:</b> <br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code>

執行當前 Web 請求期間生成了未經處理的異常。可以使用下面的異常堆棧跟蹤信息確定有關異常原因和發生位置的信息。</code>

                  </td>
               </tr>
            </table>

            <br>

            <b>堆棧跟蹤:</b> <br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>

[InvalidOperationException: 因 URL 意外地以“/GetCertByToken”結束,請求格式無法識別。]
   System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +675
   System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +259
   System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) +81
   System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +375
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +128
</pre></code>

                  </td>
               </tr>
            </table>

            <br>

            <hr width=100% size=1 color=silver>

            <b>版本信息:</b> Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.7.3282.0

            </font>

    </body>
</html>

  

解決方案:

修改web.config文件,增加如下內容即可。

<system.web>
     <webServices>
          <protocols>
              <add name="HttpGet" />
              <add name="HttpPost" /> 
              <add name="Unknown" />
              <add name="HttpSoap" />
          </protocols>
      </webServices>
  </system.web>

  

.asmx支持post請求或者get請求調用(WebService "因 URL 意外地以 結束,請求格式無法識別" 的解決方法)