Web Services URL意外结束的请求格式无法识别

w1e3prcc  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(120)

x1c 0d1x嗨Maven我有一个问题
当我在本地计算机上尝试我的Web服务时,它工作正常
但是在我上传它并在托管服务器上运行windows server 2008 r2 asp.net 4. 0之后
我收到一个错误,类似于无法识别以/setmylocation结尾的URL的此请求格式
我试过这些解决方案

<system.webServer>
            <handlers>
                <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </handlers>
        </system.webServer>

    <configuration>  
        <system.web>  
        <webservices>  
            <protocols>  
                <add name="HttpGet"></add>  
                <add name="HttpPost"></add>  
            </protocols>  
        </webservices>  
        </system.web>  
    </configuration>

and here is my client side code

    $.ajax({
                        type: "POST",
                        url: "locations.asmx/setmylocation",
                        data: "{proid: '" + proid + "'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (response) {
                            var urloc = response.d;

                            if (urloc[0].LATITUDE == '') {

                                initializemap(14.001424154457723, 121.1032415625, 7);

                            } else {
                                initializemap(urloc[0].LATITUDE, urloc[0].LONGITUDE, 10);

                            }

                        },
                        failure: function (response) {
                            alert(response.d);
                        }
                    });

我尝试了一切,但问题仍然存在,希望得到问题的答案
谢谢你
上图显示其他Web服务调用正常
和elmah.axd中的错误

System.InvalidOperationException: Request format is unrecognized for URL unexpectedly ending in '/setmylocation'.
   at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
   at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
   at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
kulphzqa

kulphzqa1#

在我的例子中,我不相信除了setmylocation之外,对Web服务的所有其他调用都是正常的,所以我怀疑这是否是www.example.com安装中的问题asp.net以及web.config中缺少配置,所以我所做的是在我的浏览器示例www.example.com上执行Web服务sample.com/webservice.asmx/setmylocation?id=1,然后它向我显示错误
所以,如果有人读到这篇文章,你也遇到了同样的问题,我希望它能帮助你

esbemjvw

esbemjvw2#

. NET连接的Web服务支持HTTP GET、HTTP POST和SOAP协议。默认情况下,在.NET Framework 1.0中,这三种协议都是启用的。默认情况下,在.NET Framework 1.1中,HTTP GET和HTTP POST都是禁用的。这是出于安全原因。

<protocols>
    <add name="HttpSoap"/>
    <add name="HttpPost"/>
    <add name="HttpGet"/> 
    <add name="HttpPostLocalhost"/>
      <!-- Documentation enables the documentation/test pages -->
    <add name="Documentation"/>
</protocols>

SMALL BLOG

相关问题