问题描述
我在一个旧的 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;
}
}
调用例程(在控制台应用程序中)是:
public static int VerifyImages(string isbn)
{
var count = -5;
var ajaxCallParams = new KBO.StoreLib.AjaxCallParams( );
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(Constants.KBOApiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.PutAsJsonAsync("VerifyStoreImagesOnServer",ajaxCallParams).GetAwaiter().GetResult();
if (response.IsSuccessstatusCode)
{
// Get the URI of the created resource.
var content = response.Content.ReadAsstringAsync().ToString();
ajaxCallParams = (KBO.StoreLib.AjaxCallParams)JsonConvert.DeserializeObject(content);
count = (int)ajaxCallParams.Data;
}
}
return count;
}
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,_kboAllowWindowClose);
selectionIsDirty = false;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)