Asp.net web api 从桌面问题调用asp.net WebMethod

Asp.net web api 从桌面问题调用asp.net WebMethod,asp.net-web-api,webclient,Asp.net Web Api,Webclient,我在旧的asp.net应用程序中有一个webmethod。KboAjaxBase.asmx模块位于wwwroot中。当我从控制台应用程序调用该方法时,它返回405。我的所有其他webmethods都是在wesite中调用的(来自js),并且运行良好。这是唯一的桌面呼叫。 谢谢 asmx文件中的webmethod是: [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public partial class KboAjaxB

我在旧的asp.net应用程序中有一个webmethod。KboAjaxBase.asmx模块位于wwwroot中。当我从控制台应用程序调用该方法时,它返回405。我的所有其他webmethods都是在wesite中调用的(来自js),并且运行良好。这是唯一的桌面呼叫。 谢谢

asmx文件中的webmethod是:

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public partial class KboAjaxBase : System.Web.Services.WebService
{    
    [WebMethod]
    public AjaxCallParams VerifyStoreImagesOnServer(AjaxCallParams ajaxCallParams)
    {
        int imagesCreated = -1; 
        AjaxCallParams returnParams = new AjaxCallParams(ajaxCallParams.Request, "",null);
        string isbn = ajaxCallParams.Data.ToString();
        StaticState.SetIsWebApi();
        using (var db = new DataAccess())
        {
            imagesCreated = ImageFuncsServer.VerifyStoreImagesOnServer(isbn);
        }
        returnParams.Data = imagesCreated.ToString();

        return returnParams;
    }    
}
调用例程(在控制台应用程序中)为:

下面是正常工作的js函数和一个典型调用:

function kbo_JsonQuery(url, method, ajaxCallParams, allowWindowClose) {
    if (_kboAjaxIsActive) return; // prevent double clicks - racing
    _kboAjaxIsActive = true;
    var jsonString = "{ 'ajaxCallParams': " + JSON.stringify(ajaxCallParams) + " }";
    var myUrl = url + method;
    //kbo_showModalOverlay();
    $.ajax({
        type: "POST",
        url: myUrl,
        data: jsonString,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: allowWindowClose, //blocks window close
        success: kbo_Success,
        error: kbo_Error
    });
}
function kboSaveSelectorStatus() {
    var kboSelectorCallParams = new KboSelectorCallParams(availableBooks, kboBuildStatus(), _kboSaveSelectedBooks);
    var ajaxCallParams = new KboAjaxCallParams(_kboSaveSelectedBooks, "");
    ajaxCallParams.SelectorCallParams = kboSelectorCallParams;
    kbo_JsonQuery(_kboAjaxBaseUrl, _kboSaveSelectedBooks, ajaxCallParams, _kboAllowWindowClose);
    selectionIsDirty = false;
}
典型呼叫:

function kbo_JsonQuery(url, method, ajaxCallParams, allowWindowClose) {
    if (_kboAjaxIsActive) return; // prevent double clicks - racing
    _kboAjaxIsActive = true;
    var jsonString = "{ 'ajaxCallParams': " + JSON.stringify(ajaxCallParams) + " }";
    var myUrl = url + method;
    //kbo_showModalOverlay();
    $.ajax({
        type: "POST",
        url: myUrl,
        data: jsonString,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: allowWindowClose, //blocks window close
        success: kbo_Success,
        error: kbo_Error
    });
}
function kboSaveSelectorStatus() {
    var kboSelectorCallParams = new KboSelectorCallParams(availableBooks, kboBuildStatus(), _kboSaveSelectedBooks);
    var ajaxCallParams = new KboAjaxCallParams(_kboSaveSelectedBooks, "");
    ajaxCallParams.SelectorCallParams = kboSelectorCallParams;
    kbo_JsonQuery(_kboAjaxBaseUrl, _kboSaveSelectedBooks, ajaxCallParams, _kboAllowWindowClose);
    selectionIsDirty = false;
}

下面是js函数和对该函数的典型调用:因为我没有得到任何响应。。。这只是个愚蠢的问题吗???